我有8个CSV文件都在同一个目录中,需要将它们导入到R中的单个数据框中。它们都遵循相同的命名约定,“dataUK_1.csv”,“dataUK_2.csv”等,并且列的结构完全相同。
我设法使用:
创建所有文件名(包括完整目录)的向量files = list.files("/Users/iarwain/Data", pattern=".csv", full.names=T)
我只是不确定如何将这些名称传递给read.csv命令,以便它循环8次,导入每个文件并将其内容作为新行添加到单个数据框中,以便最终结果是一个包含8个CSV中所有数据行的数据框。
谢谢!
答案 0 :(得分:3)
你不想要一个循环。你想要lapply
。
file_list <- list.files("/Users/iarwain/Data", pattern=".csv", full.names=T)
combined_files <- do.call("rbind", lapply(file_list, read.csv))
翻译:对列表read.csv
中的每个项目应用函数file_list
。输出是一个列表。在所有输出上调用函数rbind
,并将其分配给combined_files
答案 1 :(得分:1)