4

save で purrr::walk 関数を使用するためのヘルプを探しています。

4 つの個別のファイルに書き込みたい 4 つの 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

セッション情報

> 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
4

3 に答える 3

7

これを行う 1 つの方法は、2 番目のパラメーター ( ) を使用して関数にwalk2渡すことです (関数を定義するために使用します)。したがって、最後の行を次のように置き換えます。fnames.y~

walk2(obj, fnames, ~ save(.x, file = .y))
于 2016-10-23T20:16:55.770 に答える