使用merge()和lapply()合并目录中的CSV,错误

时间:2017-04-10 20:12:51

标签: r csv merge directory lapply

所以我想将给定目录中的每个csv合并到一个数据框中。谷歌搜索显示了许多可能的答案,但大多数都需要创建一个独特的功能,同时还手动创建列名,我宁愿不这样做。

我最感兴趣的解决方案是:

file_names <- dir('/Users/directory') 
history <- do.call(merge,lapply(file_names,read.csv))

昨晚工作很愉快,但今天早上它没用。我想我知道原因。只有当我有两个csv&#39>时,它才能正常工作。刚才,我删除了一个我的csv,现在它可以工作了。

仅供参考,我目录中的每个csv都遵循以下格式:

x |v(date)

也就是说,我将有一个名为&#34; data.04.15.2017&#34;的csv文件,其中第1列名为x,第2列名为v.04.15.2017(请注意该列是创建日期的日期,也反映在名称中。

当我尝试从上面运行第一个脚本时,我收到错误消息:

Error in fix.by(by.x, x) : 'by' must specify one or more columns as numbers, names or logical

是否所有三个csv文件中第一列的名称相同都会产生此错误?据我所知,每一行都是完全相同的,并且它们也是逐行匹配的。重申一下,当我只有两个csv文件时,这似乎工作得很好,但今天早上有三个我有上述错误。如果第一列的名称相同是一个问题,这是否意味着我必须使用merge()以外的其他函数?我可以做cbind()但这需要创建一个附加数字向量,这样我就可以删除重复的列,我宁愿避免。

感谢您的帮助。

0 个答案:

没有答案