使用 map() 函数读取和合并另一个文件列表
Use map() function to read and merge another files list
我有三个文件列表
filesl <- list.files(pattern = 'RP-L-.*\.xls', full.names = TRUE)
filesr <- list.files(pattern = 'RP-R-.*\.xls', full.names = TRUE)
filesv <- list.files(pattern = 'RP-V-.*\.xls', full.names = TRUE)
我已经尝试阅读并合并其中两个,如下所示:
data <- map2_dfr(filesl, filesr, ~ {
ldat <- readxl::read_excel(.x)
rdat <- readxl::read_excel(.y)
df <- rbind.data.frame(ldat, rdat, by = c('ID', 'GR', 'SES', 'COND'))
})
如果我想添加第三个列表filesv
我应该设置什么功能?我想我应该使用 purrr
包中的一个来在多个元素上启用函数迭代(例如 pmap, imap
等等,但我无法正确更改命令)。
关于
的任何建议
提前致谢
data <- pmap_dfr(list(filesl, filesr, filesv), ~ {
ldat <- readxl::read_excel(..1)
rdat <- readxl::read_excel(..2)
vdat <- readxl::read_excel(..3)
df <- rbind.data.frame(ldat, rdat, vdat, by = c('ID', 'GR', 'SES', 'COND'))
})
pmap
获取要迭代的列表列表。然后参数可以在匿名函数中被引用为..1
、..2
等。
我有三个文件列表
filesl <- list.files(pattern = 'RP-L-.*\.xls', full.names = TRUE)
filesr <- list.files(pattern = 'RP-R-.*\.xls', full.names = TRUE)
filesv <- list.files(pattern = 'RP-V-.*\.xls', full.names = TRUE)
我已经尝试阅读并合并其中两个,如下所示:
data <- map2_dfr(filesl, filesr, ~ {
ldat <- readxl::read_excel(.x)
rdat <- readxl::read_excel(.y)
df <- rbind.data.frame(ldat, rdat, by = c('ID', 'GR', 'SES', 'COND'))
})
如果我想添加第三个列表filesv
我应该设置什么功能?我想我应该使用 purrr
包中的一个来在多个元素上启用函数迭代(例如 pmap, imap
等等,但我无法正确更改命令)。
关于
的任何建议提前致谢
data <- pmap_dfr(list(filesl, filesr, filesv), ~ {
ldat <- readxl::read_excel(..1)
rdat <- readxl::read_excel(..2)
vdat <- readxl::read_excel(..3)
df <- rbind.data.frame(ldat, rdat, vdat, by = c('ID', 'GR', 'SES', 'COND'))
})
pmap
获取要迭代的列表列表。然后参数可以在匿名函数中被引用为..1
、..2
等。