我要说语法很明显,但这使我难以理解... 我需要用另一行中的相同单元格替换数据帧中的3个单元格,然后用NA替换源单元格,例如,我需要将df转换为df2。
sudo a2dismod php7.0
sudo a2enmod php7.2
sudo systemctl restart apache2
我可以用dplyr一次完成一个单元格
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
但是我无法弄清楚同时替换多个目标单元格的语法。有人可以指出我正确的方向吗?
答案 0 :(得分:1)
我们可以重新排列数据的行,然后根据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
答案 1 :(得分:1)
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))
希望这会有所帮助!