2016-04-26 10 views
3

Iに5つのテキストデータセットを入力する。read.tableを使用する。 各データセットには同じcolがあります。 (100行50列)。 5つのテーブルをすべて1つのテーブルにまとめると、500行* 50列になります。 誰でもそのことを知っていますか?R-連合2つまたは複数のテーブルを1つにする

+2

「rbind()」を参照してください。 – User7598

+2

Fyi、これは組合の意味ではありません。 – Frank

+0

私は組合を試みましたが、それは大きなリストになりました。テーブルではなくなりました。 – qqqwww

答えて

0

、次の操作を実行できます。それはあなたが探しているものかどう

# Create some toy data first 
nc <- 50 
nr <- 1000 

# Create five tables with nc columns and nr rows. 
df1 <- as.data.frame(replicate(nc, rnorm(nr))) 
df2 <- as.data.frame(replicate(nc, rnorm(nr))) 
df3 <- as.data.frame(replicate(nc, rnorm(nr))) 
df4 <- as.data.frame(replicate(nc, rnorm(nr))) 
df5 <- as.data.frame(replicate(nc, rnorm(nr))) 

# Join the tables 
df <- rbind(df1, df2, df3, df4, df5) 
dim(df) 
#[1] 5000 50 

これはあなたに互いに積み重ね5つのテーブルを与えます。そうでない場合は、 の問題を説明する最小限の例で提供する必要があります。

+0

ありがとうございます。それは私が探しているものです。私はRに新しいです – qqqwww

2

パッケージdplyrから:

ベースRで
install.packages('dplyr') 
library(dplyr) 
new_df <- bind_rows(table1, table2, table3, table4, table5) 
+0

これは何が問題なのですか? –

+0

私は間違っているとは思わない。実際、 'bind_rows'は' rbind'よりはるかに効率的です。 – Psidom

+0

私はまた、問題が表示されないので、ここからupvote。そのような単純な問題のためにパッケージを使うのは誰かと思うかもしれません。 (@ Psidomが指摘しているように)一般的には速いですが、実際には(おそらく)問題ではないほどデータサイズが小さいです。 –

2

この特定の質問については問題はありませんが、異なるrbindメソッドの比較を行うことはまだ役立つかもしれません。ここでは、basedata.tableおよびdplyrの3つのrbindメソッドの比較を示します。

> dim(df) 
[1] 16777216  2 

> microbenchmark(rbind(df,df), rbindlist(list(df,df)), bind_rows(df,df), times = 10) 
Unit: milliseconds 
        expr  min  lq  mean median  uq  max neval cld 
      rbind(df, df) 3824.4208 4052.6405 4288.5569 4239.2416 4557.5736 4685.2155 10 c 
rbindlist(list(df, df)) 272.5048 304.8365 348.0393 357.4388 390.7684 405.0778 10 a 
     bind_rows(df, df) 571.1732 596.2556 715.1572 643.8038 863.5805 927.0341 10 b 
+0

ありがとう、Psidom。 – qqqwww

関連する問題