Eu tenho um data.table com o qual gostaria de realizar a mesma operação em certas colunas. Os nomes dessas colunas são fornecidos em um vetor de caracteres. Neste exemplo específico, gostaria de multiplicar todas essas colunas por -1.
Alguns dados de brinquedo e um vetor especificando colunas relevantes:
library(data.table)
dt <- data.table(a = 1:3, b = 1:3, d = 1:3)
cols <- c("a", "b")
No momento, estou fazendo isso desta maneira, repetindo o vetor de caracteres:
for (col in 1:length(cols)) {
dt[ , eval(parse(text = paste0(cols[col], ":=-1*", cols[col])))]
}
Existe uma maneira de fazer isso diretamente sem o loop for?
set
com afor-loop
. Eu suspeito que será mais rápido.