我在R中有一个由几列组成的数据框。
我在这种情况下发现了自己。 x1和x2是两列,我需要将它们串联在一列中,如我的示例中清楚显示的那样
x1 x2
NA 3
NA 4
1 NA
2 NA
x_new
3
4
1
2
我尝试了此命令
x1[which(is.na(x1))]<-x2[which(is.na(x1))]
但是我想找到更优雅的东西,特别是涉及dplyr
软件包的解决方案。
谢谢
答案 0 :(得分:2)
有多种方法:(如果需要data.frame,请环绕data.frame(x_new = ...)
。)
rowSums(df1, na.rm = T)
apply(df1, 1, na.omit)
df1<-
structure(list(x1 = c(NA, NA, 1L, 2L), x2 = c(3L, 4L, NA, NA)), row.names = c(NA,
-4L), class = "data.frame")
答案 1 :(得分:1)
请尝试以下代码
zz = data.frame(X1=c(NA,NA,1,2),X2 = c(3,5,NA,NA),stringsAsFactors = F)
mod_zz = cbind.data.frame(zz, newcol=c(na.omit(c(t(zz)))))
> mod_zz
X1 X2 newcol
1 NA 3 3
2 NA 5 5
3 1 NA 1
4 2 NA 2