我试图合并R中的许多csv文件。它们都共享一个共同的列和合并命令工作得很好,当我手动输入两个名称的csv文件。但是,每次我需要执行此操作时,我都有太多文件来输入所有名称。使用ls()作为输入来合并csv文件在R
这只是正常:
test <- merge(quant_dysmorph_data.csv, srs_adult.csv, by = "individual", all
= TRUE)
我可以作为合并命令,看起来太细输入类似:
cat(ls(pattern = ".csv"), sep = ",")
返回: bapq.csv,bapq_raw.csv, bapq_recode.csv,fhi_informant.csv,fhi_interviewer.csv,fhi_subject.csv,quant_dysmorph_data.csv,srs_adult.csv(依此类推等等。抱歉,评论框不会将其格式化为正确的输出...)
然而,当我用这个作为合并命令输入我得到一个错误:
x <- merge(cat(ls(pattern = ".csv"), sep = ","), by = "individual", all =
TRUE)
返回:
Error in as.data.frame(y) : argument "y" is missing, with no default
7.as.data.frame(y)
6.as.data.frame(y)
5.nrow(y <- as.data.frame(y))
4.merge.data.frame(as.data.frame(x), as.data.frame(y), ...)
3.merge(as.data.frame(x), as.data.frame(y), ...)
2.merge.default(cat(ls(pattern = ".csv"), sep = ","), by = "individual", all
= TRUE)
1.merge(cat(ls(pattern = ".csv"), sep = ","), by = "individual", all = TRUE)
在此先感谢您的帮助。
'cat'打印到屏幕上。它返回NULL对象。您可能想要使用data.frames列表。请参阅[本文](https://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)了解更多信息。 – lmo
我之前做过类似这样的事情,我在其自己的子目录中保存了〜40个.csv文件,然后使用setwd()和dir()来获取我要循环的文件名称向量。 –