如何解决将 R 中的多个 csv 与基于文件名的索引合并
我正在尝试将多个 csv 文件与 R 中的相同列合并。我尝试了:Merging of multiple excel files in R 中提出的解决方案并且运行良好。但是,我想添加一个索引列(行名称)来标识每行对应的文件。我试过了:
files <- list.files(pattern="*.csv")
require(purrr)
mainDF <- files %>% map_dfr(read.csv,row.names=files)
但我收到错误:
read.table 中的错误(文件 = 文件,标题 = 标题,sep = sep,报价 = 报价,: 'row.names' 长度无效
我想要一个与此类似的列,或者理想情况下只是数字,例如1、2 等
有什么想法吗?
解决方法
处理此问题的一种方法是 .id
的 map_dfr()
参数。如果传递给 map_dfr()
的列表已命名,您可以在输出中包含一个列,其中包含每个列表元素的名称。如果列表未命名,则索引将包含在列中。这样,对应于每个 .csv 的行将与该索引相关联。
因此您可以执行以下操作。请注意,第二行是可选的。如果省略命名,则会得到索引 (1,2,...)。
files <- list.files(pattern="*.csv")
names(files) <- paste('file',1:length(files),sep = '_')
require(purrr)
mainDF <- files %>% map_dfr(read.csv,.id = 'file_ID')
生成的 data.frame 将包含一个名为 file_ID
的列。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。