Dúvida - mutate_all

Boa tarde !

Tentei de diversas formas, mas não consegui calcular a variação percentual de um tribble de uma vez só.

Por exemplo, aqui calculei pra uma coluna só usando o mutate, mas tentei fazer algo similar usando o mutate_all e não rolou.

a <- tribble(
~A,~B,~C,
1,2,3,
4,5,6,
7,8,9
)

c <- mutate(a, variacao = ((col1 -lag(col1))/lag(col1)))

Obrigado !

No mutate_all o nome da coluna é representado pelo “.” (ponto)

c <- mutate_all(a, ~((. - lag(.))/lag(.)))

ou, pra ficar mais legível, podia ser feito assim tbm:


log_retorno <- function(col) (col - lag(col))/lag(col) 
c <- mutate_all(a, log_retorno)
# A tibble: 3 x 3
#       A     B     C
#   <dbl> <dbl> <dbl>
# 1 NA     NA    NA  
# 2  3      1.5   1  
# 3  0.75   0.6   0.5
1 curtida

Muito obrigado, era exatamente isso !

1 curtida