R Merge Dataframe

时间:2013-05-09 15:46:51

标签: r dataframe

我有多个数据框,但它们都有相同的列标题我想要做的就是一个接一个地追加它们以制作一个大的数据帧。什么是最好的方法。

我使用了以下内容:但不确定这是正确的方法:

append(x, y)

我也尝试了rbind,但最终出现了我预期的错误,因为这些数据框的大小不同:

Error in names(value[[jj]])[ri] <- nm : 
  'names' attribute [2066] must be the same length as the vector [9]
In addition: Warning message:
In names(value[[jj]])[ri] <- nm :
  number of items to replace is not a multiple of replacement length

以下是一个例子:

> x
  user_id rev_page   rev_id rev_parent_id page_ns rev_length delta deleted rev_curr_minor           timestamp edit_count lang_level
1  705834  1048946 32026867      30924739       0       2959    82       0              0 2005-12-19 23:21:24          0          N
2  705834  1048946 32028621      32026867       0       3085   126       0              0 2005-12-19 23:36:33          1          N
3  705834    21402 32032828      32027632       0      14395   470       0              0 2005-12-20 00:10:06          2          N
4  705834    21402 32033273      32032828       0      14400     5       0              0 2005-12-20 00:13:50          3          N
5  705834   321528 32065506      29330826       0       3440   201       0              0 2005-12-20 05:13:45          4          N
6  705834   321528 32066086      32065506       0       3525    85       0              0 2005-12-20 05:21:25          5          N
> y
  user_id rev_page   rev_id rev_parent_id page_ns rev_length delta deleted rev_curr_minor           timestamp edit_count lang_level
1  892755  2585151 38515111      24830760       0       2018  1213       0              0 2006-02-06 21:32:26          0          1
2  892755  3807359 63798071      63471532       1      14047  5293       0              0 2006-07-14 15:46:56          1          1
3  892755  3807359 63798564      63798071       1      14146    99       0              0 2006-07-14 15:49:52          2          1
4  892755  2976438 63825832      44108751       0       9609   -60       0              0 2006-07-14 18:38:41          3          1
5  892755  3807359 63891769      63855569       1      15579  1005       0              0 2006-07-15 02:28:59          4          1
6  892755  3807359 67487579      63891769       1      15745   166       0              0 2006-08-03 18:52:01          5          1
> class(x)
[1] "data.frame"
> z <- rbind(x,y)
Error in names(value[[jj]])[ri] <- nm : 
  'names' attribute [12] must be the same length as the vector [9]
In addition: Warning messages:
1: In names(value[[jj]])[ri] <- nm :
  number of items to replace is not a multiple of replacement length
2: In names(value[[jj]])[ri] <- nm :
  number of items to replace is not a multiple of replacement length
> rbind(x,y)

1 个答案:

答案 0 :(得分:1)

如果列的顺序相同(在@ MatthewPlourde的评论之后),只需rbind(df1,df2,df3,...)