2016-12-08 8 views
0

複数のcsvファイルがあり、これらのファイルには同じ列と異なる列が含まれています。 例えば、複数のcsvを列で結合するr

#1st.csv 
col1,col2 
1,2 

#2nd.csv 
col1,col3,col4 
1,2,3 

#3rd.csv 
col1,col2,col3,col5 
1,2,3,4 

私は同じ列に基づいてこれらのファイルを結合しようとするが、これらの異なる列のために、私は単に すべての列が含まれるが、(その列のないものをデータ用)NAでセルを埋めます。

だから私は見ることを期待:ここでは

col1,col2,col3,col4,col5 
1,2,NA,NA,NA   #this is 1st.csv 
1,NA,2,3,NA    #this is 2nd.csv 
1,2,3,NA,4    #this is 3rd.csv 

は、私が与えるRコードはあるが、それはエラーメッセージ

> Combine_data <- smartbind(1st,2nd,3rd) 

Error in `[<-.data.frame`(`*tmp*`, , value = list(ID = c(1001, 1001, : 
    replacement element 1 has 143460 rows, need 143462 

が予想を取得する任意の代替やエレガントな方法を誰もが知っている返します結果?

Rバージョンは3.3.2です。 plyr :: rbind.fill(第一、第二、第三) ` -

+0

試し' Combine_data <からbind_rows機能でこれを達成することができるはずです。これは、あなたがすでにそれらのcsvファイルからデータをインポートしたことを前提としています。 – Abdou

答えて

2

あなたはdplyr

df1 <- read.csv(text = "col1, col2 
1,2", header = TRUE) 

df2 <- read.csv(text = "col1, col3, col4 
1,2,3", header = TRUE) 

df3 <- read.csv(text = "col1, col2, col3, col5 
1,2,3,4", header = TRUE) 

library(dplyr) 

res <- bind_rows(df1, df2, df3) 
> res 
    col1 col2 col3 col4 col5 
1 1 2 NA NA NA 
2 1 NA 2 3 NA 
3 1 2 3 NA 4 
関連する問題