如何在R中组合具有不同列的多个.csv文件?

如何在R中组合具有不同列的多个.csv文件?,r,R,假设我有8张桌子。假设每个表中有6列相同,但在这8个表中,其中5个表有一个额外的列(其列名在所有5个表中都相同,这意味着其中5个表总共有7列)。 我的问题是我们将如何绑定所有8个表,以便其他3个表现在也包含其他5个表所具有的额外列。 我希望问题很清楚。您可以使用plyr软件包中的rbind.fill来实现以下目的: library(plyr) # df_list contains a list of all the csv files you read, e.g. using lapply(l

假设我有8张桌子。假设每个表中有6列相同,但在这8个表中,其中5个表有一个额外的列(其列名在所有5个表中都相同,这意味着其中5个表总共有7列)。 我的问题是我们将如何绑定所有8个表,以便其他3个表现在也包含其他5个表所具有的额外列。
我希望问题很清楚。

您可以使用plyr软件包中的
rbind.fill
来实现以下目的:

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

或者,使用@akrun建议的
data.table
中的
rbindlist
。对于较大的数据集,这可能要快得多。

将数据集放在
列表中
lst谢谢Paul,但是是否有其他选项,您不必键入所有内容并使用循环或其他方法。我不确定您的意思。使用rbind.fill似乎不需要太多代码。我解决了这个问题,因为它只需要8个表,所以我手动在其他3个表中插入了缺少的列,然后将它们合并。lst