首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >R-连接两个数据帧?

R-连接两个数据帧?
EN

Stack Overflow用户
提问于 2011-11-17 23:02:27
回答 4查看 360.2K关注 0票数 151

给定两个数据帧ab

> a
           a           b           c
1 -0.2246894 -1.48167912 -1.65099363
2  0.5559320 -0.87898575 -0.15634590
3  1.8469466 -0.01487524 -0.53098215
4 -0.6875051  0.23880967  0.01824621
5 -0.6735163  0.75485292  0.44154092


> b
           a          c
1  0.4287284 -0.3295925
2  0.5201492  0.3341251
3 -2.6355570  1.7916780
4 -1.3645337  1.3642276
5 -0.4954542 -0.6660001

有没有一种简单的方法可以将它们连接起来,从而返回一个如下形式的新数据帧?

> new
           a                   b           c
1  -0.2246894   -1.48167912106676 -1.65099363
2   0.5559320  -0.878985746842256 -0.15634590
3   1.8469466 -0.0148752354840942 -0.53098215
4  -0.6875051   0.238809666690982  0.01824621
5  -0.6735163   0.754852923524198  0.44154092
6   0.4287284                  NA -0.32959248
7   0.5201492                  NA  0.33412510
8  -2.6355570                  NA  1.79167801
9  -1.3645337                  NA  1.36422764
10 -0.4954542                  NA -0.66600006

我想合并数据帧,匹配报头,并为dataframe b中缺少报头的位置插入NA

EN

回答 4

Stack Overflow用户

发布于 2011-12-03 10:39:23

你想要"rbind“。

b$b <- NA
new <- rbind(a, b)

rbind要求数据帧具有相同的列。

第一行将列b添加到数据帧B。

结果

> a <- data.frame(a=c(0,1,2), b=c(3,4,5), c=c(6,7,8))
> a
  a b c
1 0 3 6
2 1 4 7
3 2 5 8
> b <- data.frame(a=c(9,10,11), c=c(12,13,14))
> b
   a  c
1  9 12
2 10 13
3 11 14
> b$b <- NA
> b
   a  c  b
1  9 12 NA
2 10 13 NA
3 11 14 NA
> new <- rbind(a,b)
> new
   a  b  c
1  0  3  6
2  1  4  7
3  2  5  8
4  9 NA 12
5 10 NA 13
6 11 NA 14
票数 254
EN

Stack Overflow用户

发布于 2013-08-15 22:40:35

尝试plyr包:

rbind.fill(a,b,c)
票数 36
EN

Stack Overflow用户

发布于 2017-02-15 21:10:50

您可以使用函数

bind_rows(a,b)

dplyr库中

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8169323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档