在R中组合两列

时间:2014-04-09 13:25:02

标签: r merge dataframe

如何组合两列并替换R中的缺失值?

假设我有一个data.frame:

D = data.frame(a = c(1,NA,3), b = c(1,2,NA))

看起来像这样

   a  b
1  1  1
2 NA  2
3  3 NA

如何让它看起来像这样:

  c
1 1
2 2
3 3

2 个答案:

答案 0 :(得分:1)

假设两列具有相同的值,或者其中一列将是NA

D = data.frame(a = c(1,NA,3), b = c(1,2,NA))
D[['c']] <- rowMeans(D, na.rm = TRUE)
D

   a  b c
1  1  1 1
2 NA  2 2
3  3 NA 3

答案 1 :(得分:1)

如果列a是主列,并且您希望将b中的值复制为当时的NA:

D = data.frame(a = c(1,NA,3), b = c(1,2,NA))
D2=data.frame(c = D$a)
D2$c[is.na(D2$c)] <- D$b[is.na(D$a)]
D2
  c
1 1
2 2
3 3