如何将数据放入数据帧而不重复R中的代码



我有一个url,可以通过手动在updated_url中键入内容来更新。然后,从这个url中提取数据并将其放入tibble中。

但是,我当前的代码看起来效率很低,因为它是重复的。有没有办法把它放在一个循环中,这样它就不会重复?本质上,我只想在更新后的url位(这里是X和Y(中键入一些内容,并返回两个tibble(tibble1tibble2(,而不必重复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()
)
这是一个简单的循环问题。有很多方法可以在R中进行循环,但我认为一种惯用的方法是使用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}

最新更新