在NA位置连接向量

时间:2018-11-08 09:30:15

标签: r

我在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软件包的解决方案。

谢谢

2 个答案:

答案 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