我已经看过过去类似的问题,但没有一个真正像我的问题,所以我开始:
这是列表as
这是从一个文件夹结构(下面)获得的
使用下面的代码,我得到了read.csv
部分并命名了嵌套列表
data_dir <- "C:/Users/thepr/Documents/data/as"
num_fu <- 1 : 9
dirs <- paste0(data_dir, num_fu)
as_list <- lapply(dirs, function(x) {
files <- list.files(x, pattern = "\\.csv$", full.names = TRUE)
names(files) <- str_sub(basename(files), 1, 6)
lapply(files, read.csv
})
我想做的是
>as[[1]]
(a full_join dataframe of as[[1]][[1]], as[[1]][[2]], as[[1]][[3]],... as[[1]][[9]])
>as[[2]]
(a full_join dataframe of as[[2]][[1]], as[[2]][[2]], as[[2]][[3]],... as[[2]][[9]])
.
.
.
>as[[9]]
(a full_join dataframe of as[[9]][[1]], as[[9]][[2]], as[[9]][[3]],... as[[9]][[9]])
每个连接列表的名称是
>names(as_list)
[[1]] as1
[[2]] as2
.
.
.
[[9]] as9
这个嵌套列表使得lapply的使用变得困难。正如这里所建议的,我想使用reduce(full_join,as_list x),但我不知道如何将其转换为R代码。
data_dir <- "C:/Users/thepr/Documents/data/as"
num_fu <- 1 : 9
dirs <- paste0(data_dir, num_fu)
as_list <- lapply(dirs, function(x) {
files <- list.files(x, pattern = "\\.csv$", full.names = TRUE)
names(files) <- str_sub(basename(files), 1, 6)
lapply(files, function(y) {
read.csv(y)
reduce(full_join, as_list[[x]])
})
})
Error in x[[1]] : object of type 'closure' is not subsettable
Called from: reduce_init(.x, .init, left = left, error_call = .purrr_error_call)
或
as_list <- lapply(as_list, function(x){
reduce(full_join, as_list[[x]])
})
但毫无结果。谢谢你!
1条答案
按热度按时间5gfr0r5j1#
给予