Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用purrr:walk2时找不到Object.x_R_Purrr - Fatal编程技术网

使用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。把答案贴出来,我会接受的。