Цель состоит в том, чтобы использовать parse_number()
в столбцах, которые содержат «XX» или «YY»
(исключить все запятые)
# 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"))
У меня есть подход, как показано ниже: (это работает)
DT <- DT %>%
mutate_at(vars(grep("XX|YY",names(.), value = TRUE)), funs(parse_number))
Как добиться этого в data.table, как library(dplyr) %>%
очень медленно для больших данных.
DT[,parse_number(.SD),.SDcols = list(grep("XX|YY",colnames(DT),value = TRUE))]
Получить ошибку
DT[,grep("XX"|YY",colnames(DT),value = TRUE),with = FALSE]
Может динамически выбирать столбец, но не знает, как применить :=
с parse_number(x)
к неявным столбцам