我是新使用dplyr包的,我一直在尝试读取R中的多个文件,然后通过绑定所有行来创建一个数据框架,但将每个文件的名称作为一个新列。此新列是未包含在数据中的对应日期。
我的文件列表(例如):
01012019.aps
02012019.aps
我想让我的最后数据像这样:
x y file date
1 4 01012019 01-01-2019
2 5 01012019 01-01-2019
3 6 02012019 02-01-2019
4 7 02012019 02-01-2019我一直在尝试这个:
path_aps<- "C:/Users/.../.../APS"
files_aps <- list.files(path_aps, pattern = "*.aps")
data_aps <- files_aps %>%
map(~ read.table(file.path(path_aps, .), sep = "\t")) %>%
map(~ mutate(filename = files_aps, .))%>%
reduce(gtools::smartbind)但是我发现了一个错误:
错误:列
filename必须长度为288 (行数)或一列,而不是61行
据我所知,files_aps中的文件列表有61个元素,因为这是我目录中的文件数,288个是每个.aps文件的行数;但是,我无法使其工作到每个.aps文件的扩展。我已经阅读了多个类似问题的答案,但我仍然没有得到预期的结果。
发布于 2019-11-20 22:02:10
我在另一个answer的帮助下解决了这个问题,我得到了如下信息:
data_aps <- list.files(path_aps, pattern = "*.aps", full.names = TRUE) %>% map_df(function(x) read.table(x, sep = "\t") %>% mutate(filename=gsub(".aps","", basename(x))))
https://stackoverflow.com/questions/58956818
复制相似问题