我有几个包含数据帧对象的 .Rds 文件,我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中。但是,当我尝试从文件名列表中读取多个 .Rds 文件时,我收到错误:
FUN(X[[i]], ...) 中的错误:从连接读取时出错
readRDS 不适用于列表吗?
########################
# Reproducible example
########################
library(dplyr)
# Create .Rds files
saveRDS(data.frame(a = seq(1:3), b = rep("a",3)),"a.Rds")
saveRDS(data.frame(a = seq(9:11), b = c("j","h","o")),"b.Rds")
# Create list of file names to read
rds <- list("a.Rds","b.Rds")
# Read in .Rds files (error occurs here)
temp <- lapply(rds, readRDS)
# Converts file to single data frame
final <- do.call(dplyr::bind_rows, temp)
In the purrr
封装函数map_df
做你想做的事。map_df
通过行绑定各个元素返回单个数据帧。
saveRDS(data.frame(a = 1:3, b = rep("a",3)),"a.Rds")
saveRDS(data.frame(a =9:11, b = c("j","h","o")),"b.Rds")
# Create list of file names to read
rds <- c("a.Rds","b.Rds")
library(purrr)
purrr::map_df(rds, readRDS)
编辑后的版本纠正了示例中的一个小错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)