我有一个url,可以通过手动在updated_url
中键入内容来更新。然后,从这个url中提取数据并将其放入tibble中。
但是,我当前的代码看起来效率很低,因为它是重复的。有没有办法把它放在一个循环中,这样它就不会重复?本质上,我只想在更新后的url位(这里是X和Y(中键入一些内容,并返回两个tibble(tibble1
和tibble2
(,而不必重复tibble代码。
updated_url <- url_function('X')
tibble1 <- fromJSON(update_url) %>%
pluck(2) %>%
as_tibble()
updated_url <- url_function('Y')
tibble2 <- fromJSON(update_url) %>%
pluck(2) %>%
as_tibble()
感谢帮助!
使用purrr
中的map
library(purrr)
library(dplyr)
map(vec, ~ url_function(.x)
fromJSON(.) %>%
pluck(2) %>%
as_tibble()
)
lapply
函数:
vec <- c("X", "Y")
tb_list <- lapply(vec, function(x) {
updated_url <- url_function(x)
fromJSON(update_url) %>%
pluck(2) %>%
as_tibble()
})
tb_list
将是tibble的列表,vec
的每个元素都有一个tibble。
为要传递给url_function
的所有内容创建一个向量,我称之为vec
。然后使用for循环将每个表添加到列表中(您可以使用assign
为每个tibble创建一个变量,但我不建议这样做(:
newlist <- list()
for(i in vec){
updated_url <- url_function(i)
tibble <- fromJSON(update_url) %>%
pluck(2) %>%
as_tibble()
newlist[[i]] <- tibble}