【问题标题】:Combine two dataframes by row (irrespective of columns names) [duplicate]按行组合两个数据帧(不考虑列名)[重复]
【发布时间】:2021-04-07 21:07:34
【问题描述】:

这似乎很简单。

我的目标是按行组合这两个数据帧,而不使用 r_bindmerge,因为这取决于我的列名。

   obj <- data.frame (
      yr = c(1990, 1991, 1992, 1993, 1994, 1995),
      occ = c(223, 224, 225, 226, 227, 228))
    
    obj1 <- data.frame (
      emp = c(10, 10, 10, 10, 10, 10),
      degree = c(1, 1, 1, 1, 1, 1))
  

预期的输出是:

 emp degree
1  10      1
2  10      1
3  10      1
4  10      1
5  10      1
6  10      1
1 1990    223
2 1991    224
3 1992    225
4 1993    226
5 1994    227
6 1995    228

提前非常感谢!!

【问题讨论】:

  • 将obj的列名替换为obj1并使用rbindrbind(obj1, setNames(obj, names(obj1)))

标签: r


【解决方案1】:

基本 R 选项是 list2DF + Map

> list2DF(Map(c, obj1, obj))
    emp degree
1    10      1
2    10      1
3    10      1
4    10      1
5    10      1
6    10      1
7  1990    223
8  1991    224
9  1992    225
10 1993    226
11 1994    227
12 1995    228

另外,你可以试试rbindlist from data.table package

data.table::rbindlist(list(obj1, obj), use.names = FALSE)

给了

     emp degree
 1:   10      1
 2:   10      1
 3:   10      1
 4:   10      1
 5:   10      1
 6:   10      1
 7: 1990    223
 8: 1991    224
 9: 1992    225
10: 1993    226
11: 1994    227
12: 1995    228

【讨论】:

  • @akrun 是的,你是对的。感谢您指出:)
猜你喜欢
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 2016-09-22
相关资源
最近更新 更多