[英]replace multiple cells in one in one row of a df with values from same cells in another row
我要说语法很明显,但是它使我难以理解...我需要用另一行中的相同单元格替换数据框中的3个单元格,然后用NA替换源单元格,例如,我需要将df转换为df2 。
V1<-c("A","A","E")
V2<-c("B","D","F")
V3<-c(1,3,5)
V4<-c(2,4,6)
df<-data.frame(V1,V2,V3,V4)
df
V12<-c("A","A","E")
V22<<-c("D",NA,"F")
V32<<-c(3,NA,5)
V42<-c(4,NA,6)
df2<-data.frame(V12,V22,V32,V42)
df2
我可以用dplyr一次做一个细胞
df %>% mutate(V2=replace(V2, V1=="A" & V2=="B","D"))
但是我无法弄清楚同时替换多个目标单元格的语法。 有人可以指出我正确的方向吗?
我们可以重新排列数据的行,然后根据duplicated
“ V1”值将NA分配给列
dfN <- df[c(2:1, 3),]
dfN[duplicated(dfN$V1), 2:4] <- NA
row.names(dfN) <- NULL
dfN
# V1 V2 V3 V4
#1 A D 3 4
#2 A <NA> NA NA
#3 E F 5 6
df2 <- df
df2[c(1,2), 2:4] <- rbind(df[2, 2:4], rep(NA, 3))
那应该为你做。 如果您不想创建新的数据框并节省内存空间,
df[c(1,2), 2:4] <- rbind(df[2, 2:4], rep(NA, 3))
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.