У меня есть демонстрационный кадр данных как ниже:
data <- data.frame(matrix(sample(1:40), 4, 10, dimnames = list(1:4, LETTERS[1:10])))
Я хочу знать, как я могу выбрать несколько столбцов и преобразовать их вместе в факторы. Я обычно делаю это в пути как data$A = as.factor(data$A)
. Но когда кадр данных является очень большим и содержит много столбцов, этот путь будет очень трудоемким. Кто-либо знает о лучшем способе сделать это?
Вот data.table
пример. Я использовал grep
в этом примере, потому что это, я часто выбираю много столбцов при помощи частичных соответствий к их именам.
library(data.table)
data <- data.table(matrix(sample(1:40), 4, 10, dimnames = list(1:4, LETTERS[1:10])))
factorCols <- grep(pattern = "A|C|D|H", x = names(data), value = TRUE)
data[, (factorCols) := lapply(.SD, as.factor), .SDcols = factorCols]