使用purrr:walk2时找不到Object.x
我试图在使用purrr:walk2时找不到Object.x,r,purrr,R,Purrr,我试图在purr::walk2ie: library(stats19) library(purrr) walk2(.x = 2017, .y = "Accidents", .f = dl_stats19(year = .x, type = .y, data_dir = "./data", file_name = paste0("stats19_", .x, "_", .y), ask = FALSE)) # Error in dl_stats19(year = .x$years, type
purr::walk2
ie:
library(stats19)
library(purrr)
walk2(.x = 2017, .y = "Accidents", .f = dl_stats19(year = .x, type = .y, data_dir = "./data", file_name = paste0("stats19_", .x, "_", .y), ask = FALSE))
# Error in dl_stats19(year = .x$years, type = types, data_dir = data_dir, : object '.x' not found
我不明白为什么在函数
dl_stats19()
中没有拾取.x。有几种可能的解决方案。第一个也是最简单的方法是在函数名之前包含一个波浪形块,如下所示:
walk2(.x = 2017,
.y = "Accidents",
.f = ~ dl_stats19(year = .x,
type = .y,
data_dir = "./data",
file_name = paste0("stats19_", .x, "_", .y),
ask = FALSE))
您还可以使用匿名函数并按位置匹配参数,如下所示:
walk2(.x = 2017,
.y = "Accidents",
.f = function(a, b) dl_stats19(year = a,
type = b,
data_dir = "./data",
file_name = paste0("stats19_", a, "_", b),
ask = FALSE))
试着把
~
放在dl_stats19
之前@Lyngbakr是的,就是这样。我认为只有匿名函数才需要一个tilde。把答案贴出来,我会接受的。