-1
请看下面的例子:purrr:无法修改全局列表
test <- data_frame(link = c('https://commons.wikimedia.org/wiki/Main_Page', 'https://commons.wikimedia.org/wiki/Category:Society'),
counter = c(1,2))
> test
# A tibble: 2 x 2
link counter
<chr> <dbl>
1 https://commons.wikimedia.org/wiki/Main_Page 1
2 https://commons.wikimedia.org/wiki/Category:Society 2
现在我用purrr:map2
申请一个简单的功能,无论是link
和counter
变量。功能如下:
data_list = list()
get_link <- function(link, counter){
read_tmp <- read_html(link)
data_list[[counter]] <- read_tmp
}
该列表保持空白。我试图做的仅仅是将每次迭代(read_tmp
)存储到全局列表data_list
中,以便我稍后在程序中访问。
但是,调用: purrr:map2(test$link, test$counter, ~get_link(.))
不添加任何东西到data_list
列表。
这里讨厌的范围问题是什么?我以为我正在修改一个在函数外部定义的全局对象...
的感谢!你是否有一些资料来支持你的说法,“但据我所知,实施中的范围有点改变。” –