L'objectif est d'utiliser parse_number()
sur les colonnes qui contiennent "XX" ou "YY". (éliminez toutes les "virgules")
# DT
DT <- data.table(C1 = c("12","14","94"),XX_C2 =
c("12,1","14,0","94,1"),XX_C3 = c("52,33","44,9","194,1"),C4 =
c("124","1","9"),ZZ_C5 = c("1132,3","1442,0","914,2"),ZZ_C5 =
c("1532,3","1742,9","94,1"))
J'ai l'approche suivante : (cela fonctionne)
DT <- DT %>%
mutate_at(vars(grep("XX|YY",names(.), value = TRUE)), funs(parse_number))
Comment réaliser ceci dans la manière data.table comme library(dplyr) %>%
est très lent pour les grandes données.
DT[,parse_number(.SD),.SDcols = list(grep("XX|YY",colnames(DT),value = TRUE))]
Obtenir une erreur
DT[,grep("XX"|YY",colnames(DT),value = TRUE),with = FALSE]
Je peux sélectionner la colonne dynamiquement mais je ne sais pas comment l'appliquer. :=
con parse_number(x)
sur les colonnes implicites