【问题标题】:How to combine two dataframes columns containing differing number of elements in R? [duplicate]如何组合包含 R 中不同数量元素的两个数据框列? [复制]
【发布时间】:2021-01-24 14:18:41
【问题描述】:

我有两个数据框,1 - Dfa(72 行)和 2 - Dfb(1495 行)。 如何将它们组合成一个数据框。我不想做 rbind/cbind。

Dfa Dfb
1    1
2    2
3    4
4    5
.    6
.    7
.    8
72   9 
     20
     30
     90
      .
      .
      .
     1495

【问题讨论】:

标签: r


【解决方案1】:

不确定下面的代码是否是你所追求的

subset(
  merge(
    cbind(id = 1:nrow(dfa), dfa),
    cbind(id = 1:nrow(dfb), dfb),
    all = TRUE
  ),
  select = -id
)

给了

    a  b
1   1  1
2   2  2
3   3  3
4  NA  4
5  NA  5
6  NA  6
7  NA  7
8  NA  8
9  NA  9
10 NA 10

虚拟数据

dfa <- data.frame(a = 1:3)
dfb <- data.frame(b = 1:10)

如果你有2个以上的多个数据框,可以试试下面的base R代码

subset(
  Reduce(
    function(...) merge(..., all = TRUE),
    lapply(list(dfa, dfb, dfc), function(x) cbind(id = 1:nrow(x), x))
  ),
  select = -id
)

给了

    A  B  C
1   1  1  1
2   2  2  2
3   3  3  3
4  NA  4  4
5  NA  5  5
6  NA  6  6
7  NA  7  7
8  NA  8 NA
9  NA  9 NA
10 NA 10 NA

虚拟数据

dfa <- data.frame(A = 1:3)
dfb <- data.frame(B = 1:10)
dfc <- data.frame(C = 1:7)

【讨论】:

  • 它只适用于 2 列,不超过 2。我想。
  • @park 查看我的更新
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-14
  • 2011-10-06
  • 2022-11-13
  • 1970-01-01
  • 2021-02-17
  • 2017-07-05
相关资源
最近更新 更多