繁体   English   中英

用另一行中相同单元格中的值替换df中一行中的多个单元格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM