【发布时间】:2020-01-08 00:10:00
【问题描述】:
我正在读取多个 csv 文件(20 个文件)并最终创建一个数据框。虽然我用眼睛手动检查,但列名是相同的。但是,由于某种原因,我收到以下错误。
match.names(clabs, names(xi)) 中的错误: 名字与以前的名字不匹配
这是我写的代码
fnames <- list.files("C:/Users/code",pattern='^La') # getting all the files from directory. Update it as required
csv <- lapply(fnames,read.csv) # reading all the files
source_DF <- do.call(rbind, lapply(csv, '[', 1:8)) # This is the line where it throws error
请注意,我使用1:8 是因为有时 R 会读取奇数列。例如,我所有的 csv 文件只有 8 列,但当它读取时,有时它有 12 列,有些甚至有 50 列。所以,为了避免这种情况,我得到了1:8。也欢迎任何其他阅读前 8 列的方法
如何找出哪个 csv 文件存在此命名问题以及导致此问题的列是什么?
任何解决此错误的帮助都会很有帮助
【问题讨论】:
-
供将来参考:包含可重现的示例以及预期的输出会很有帮助,以便其他人能够准确地回答您的问题。
-
当然。但在这种情况下,除了我的代码,我不知道如何分享示例
-
问题的核心是你有一个数据框列表,其中一些有不同的名称:简单地创建一些这样的假数据。好读:stackoverflow.com/a/5963610/4550695
-
谢谢。会遵循的
标签: r dataframe lapply sapply rbind