map_dfr 用函数和 paste0

map_dfr with a function and paste0

我有一个函数 reviews,我想用 map_dfr 迭代函数参数并粘贴 0 来更改输入。所以像

got_reviews <- function(page) {
    
    ...
    
    return(reviews)
}

link <- "blah=?"
all_reviews <- map_dfr(seq(0,80, by = 10), got_reviews(paste0(link,.?.)))

我希望 paste0 循环序列,但我不知道如何在 map_dfr 中引用它,或者这是否可能。我想用 for 循环来做,但从阅读中建议使用 map 或 lapply 或 slappy 但我不确定如何在其中任何一个中引用序列

我们可以使用 .x 和 lambda 调用 (~)

library(purrr)
map_dfr(seq(0,80, by = 10), ~ got_reviews(paste0(link,.x)))

此外,由于 paste 是矢量化的,因此无需在循环中执行此操作,即使用 paste0 创建输入,在 vector 上循环,使用 map 并应用 got_reviews。由于函数只有一个参数,我们不需要指定参数

map_dfr(paste0(link, seq(0, 80, by = 10)), got_reviews)