Tenho um tibble com duas colunas. Para cada linha, quero usar os valores das duas colunas em uma função. Qual é a maneira correta de fazer isso usando tidyverse
? Como descreverei em mais detalhes abaixo, não acho que a função (chamada para uma API) possa ser vetorizada.
Para definir ideias, suponha que eu tenha estes dados:
library(tidyverse)
d <- tibble(a=c("a", "b", "d"), b=c("x", "y", "z"))
Quero então aplicar uma função (aqui, apenas uma coisa bem simples). Usando o R base, posso fazer:
for (i in 1:nrow(d)) {
d[i, "value"] <- paste0(d[i,"a"], d[i, "b"])
}
Qual é a melhor maneira — tidyverse
a solução é esperada, mas não necessária — de fazer isso para cada linha, passando dois argumentos para a função?
Note que estou ciente de que no exemplo acima, eu poderia fazer d <- d %>% mutate(value = paste0(a, b))
, no entanto, meu problema real envolve uma função R que executa uma chamada de API para uma API específica que eu acho que precisa ser executada uma linha por vez. Cada chamada para a API retorna uma lista, que eu quero armazenar no meu tibble.
Observe também que talvez seja necessário um pequeno atraso entre cada chamada de API.
Use
rowwise
,map2_chr
,mapply
ouVectorize
: