Digamos que eu tenha estes dados de exemplo:
library(tidyverse)
colNames <- c('A', 'B')
df <- tibble(A = sample(1:1000, 20),
A_Direction = 'Decreasing',
B = sample(1:1000, 20),
B_Direction = 'Increasing')
Quero alterar as colunas A
de B
forma que, se A_Direction
ou B_Direction
estiver diminuindo, seja 0 e, se estiver aumentando, seja 1. Aqui está o que tentei:
dfNew <- df %>%
mutate(across(.cols = matches(paste0('^', colNames, '$')),
.fns = ~ifelse(test = paste0(cur_column(), '_Direction')=='Decreasing',
yes = 0,
no = 1)))
Mas é claro que ele não reconhece o test
argumento porque é uma string, então ambas as colunas se tornam 1
. Alguma idéia de como posso fazer isso programaticamente (os dados do OG têm muito, muito mais colunas como esta).