r purrr 问题使用 walk 和 save()

标签 r save purrr

我正在寻找使用 purrr::walk 函数和 save 的帮助。

我有一个包含四个 dfs 的列表,我想将它们写入四个单独的文件中。这是我使用的代码和我收到的错误。 .x 和 ... 都是长度相同的列表。我确定我犯了一些简单的错误,但不确定那是什么。谢谢您的帮助。

# load libs
library(purrr)

# create dfs to loop over
df <- data.frame(
  a = rnorm(10),
  b = rnorm(10),
  c = rnorm(10),
  d = rnorm(10)
)
obj <- list(df1 = df, df2 = df, df3 = df, df4 = df )


# create file names to loop over
path <- "/user/home/"
folder <- "RDa/"
names <- c("df1", "df2", "df3", "df4")
fnames <- lapply(names, function(x) paste0(path, folder, x, ".RDa"))

# iterate
walk(obj, save, fnames)

Error in .f(.x[[i]], ...) : object ‘.x[[i]]’ not found

session 信息
> sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
Running under: OS X 10.7.5 (Lion)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] purrr_0.2.2

loaded via a namespace (and not attached):
[1] magrittr_1.5 tools_3.2.1  Rcpp_0.12.3  knitr_1.12.3

最佳答案

一种方法是使用 walk2并通过 fnames in 作为函数的第二个参数 ( .y )(使用 ~ 定义函数)。因此,将您的最后一行替换为:

walk2(obj, fnames, ~ save(.x, file = .y))

关于r purrr 问题使用 walk 和 save(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40207054/

相关文章:

r - 如何避免 purrr::pmap_dfr 将日期转换为数字

删除空列表列

iPhone,将带有 "renderInContext"的图像保存到设备时,图像模糊?

r - 使用 purrr 取消嵌套列表并收集项目

r - 矩阵到图像,每个元素恰好有 1 个像素

r - 在 Shiny 中互连 slider 和数字输入

python - 如何使用 Bio.PDB 分别保存 PDB 文件中的每个配体?

python - 保存由函数 matplotlib python 产生的图

r - 在 Rmarkdown 文档中使用 R 代码添加引用

r - 偏斜分布 Rcpp