2016-11-07 61 views
-2

假設我有8個表格。讓每列表中的6列相同,但是在這8個表格中,其中5個列有一個額外的列(其列名全部相同,即5列共有7列)。 我的問題是我們如何綁定所有8個表,使其他3個表現在也包含另一個5所具有的額外列。 我希望這個問題很清楚。如何將多個.csv文件與R中的不同列組合起來?

+3

將數據集放入'list'中,即'lst < - list(df1,df2,... df8);庫(data.table); rbindlist(lst,fill = TRUE)' – akrun

回答

0

您可以使用rbind.fill從plyr包這樣的:

library(plyr) 

# df_list contains a list of all the csv files you read, e.g. using lapply(list_paths, read.csv) 
df_list = list(data.frame(a = c(1,2), b = c(3,4)), 
       data.frame(a = c(4,5), b = c(6,3), c = c(20, 21))) 
> do.call('rbind.fill', df_list) 
    a b c 
1 1 3 NA 
2 2 4 NA 
3 4 6 20 
4 5 3 21 

或替代,使用rbindlistdata.table爲@akrun建議。對於較大的數據集,這可能要快得多。

+0

感謝保羅,但是有沒有其他的選項,你不必輸入所有內容,只使用循環或其他方法。 –

+0

我不確定你的意思。使用rbind.fill似乎不是很多代碼。 –

+0

我解決了問題,因爲它只有8個表的問題,我手動插入了其他3個表中的缺失列,然後將它們組合在一起。 lst < - list(v1,v2,v3,v4,v5,v6,v7,v8,); vCombined < - rbindlist(lst,fill = TRUE) –

相關問題