我有一个包含两列的 tibble。对于每一行,我想在函数中使用这两列的值。使用 执行此操作的正确方法是什么tidyverse
?正如我将在下面更详细地描述的那样,我认为该函数(调用 API)不能矢量化。
为了提出想法,假设我有这些数据:
library(tidyverse)
d <- tibble(a=c("a", "b", "d"), b=c("x", "y", "z"))
然后我想应用一个函数(这里只是非常简单的事情)。使用基础 R,我可以做到:
for (i in 1:nrow(d)) {
d[i, "value"] <- paste0(d[i,"a"], d[i, "b"])
}
最好的方法是什么(tidyverse
希望找到解决方案,但不是必要的)对每一行执行此操作,并向函数传递两个参数?
请注意,我知道在上面的例子中,我可以这样做d <- d %>% mutate(value = paste0(a, b))
,但我的实际问题涉及一个 R 函数,该函数对特定 API 执行 API 调用,我认为需要一次运行一行。每次调用 API 都会返回一个列表,我想将其存储在我的 tibble 中。
另请注意,每次 API 调用之间可能需要留出一点延迟。
使用
rowwise
、map2_chr
或:mapply
Vectorize