Принудите несколько столбцов к факторам сразу

У меня есть демонстрационный кадр данных как ниже:

data <- data.frame(matrix(sample(1:40), 4, 10, dimnames = list(1:4, LETTERS[1:10])))

Я хочу знать, как я могу выбрать несколько столбцов и преобразовать их вместе в факторы. Я обычно делаю это в пути как data$A = as.factor(data$A). Но когда кадр данных является очень большим и содержит много столбцов, этот путь будет очень трудоемким. Кто-либо знает о лучшем способе сделать это?

58
задан 29 November 2018 в 07:04

1 ответ

Вот 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]
0
ответ дан 1 November 2019 в 13:26

Другие вопросы по тегам:

Похожие вопросы: