【发布时间】:2018-05-12 13:20:29
【问题描述】:
我目前正在尝试使用 map_df 代码合并两个数据文件。我已经下载了我的数据集 [https://catalog.data.gov/dataset/baby-names-from-social-security-card-applications-national-level-data] 并将其放在我的工作目录的文件位置。它是一个包含许多单独的小文件的文件。我希望使用 map_df 快速导入数据集,而不必在代码中命名每个文件。但是,当我尝试从该文件夹中提取数据时:
namedata.df <- read.csv.folder(Namedata, x = TRUE, y = TRUE, header = TRUE, dec = ".", sep = ";", pattern = "csv", addSpec = NULL, back = TRUE)
我得到一个返回: substr(folder, start = nchar(folder), stop = nchar(folder)) 中的错误: 找不到对象“名称数据”
为什么会丢失文件夹?有没有更好的方法来拉入数据文件夹?
【问题讨论】:
-
我通常这样做的方式是使用
list.files()获取文件名列表,然后使用lapply()(或其他应用函数)调用read.csv()。伪代码:lapply(filenames, read.csv, ...) -
@Mako212 +1 为
list.files(),但对于年轻玩家来说,一个陷阱是full.names参数默认为FALSE。将此设置为TRUE以获取完整路径和文件名,以便read_csv()可以找到该文件。 -
@Snubian 我有一阵子感到困惑,因为我从来没有遇到过不更改该参数的问题,但我想如果您在工作目录以外的其他东西上运行
list.files(),这就是相关的。我通常setwd()到相关文件夹,避免这个问题。 -
请看我的回答和其他人here。正如其他人所说,使用
list.files()和map的组合将使您到达那里。请注意,问题略有不同,因为用户想要每个数据帧的最后一行,但您可以通过删除链中的最后几行轻松修改代码(即停在unnest())。