1. ホーム
  2. r

[解決済み] 複数の列を一度に因数分解する

2023-05-09 08:37:06

質問

以下のようなサンプルデータ・フレームがあります。

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

複数の列を選択し、まとめて係数に変換する方法を知りたいです。私は通常、次のような方法でそれを行う data$A = as.factor(data$A) . しかし、データフレームが非常に大きく、多くの列を含んでいる場合、この方法は非常に時間がかかります。どなたか良い方法をご存知でしょうか?

どのように解決するのですか?

要因に強制するためにいくつかの列を選択します。

cols <- c("A", "C", "D", "H")

使用方法 lapply() を使って、選択された列を強制的に置き換えます。

data[cols] <- lapply(data[cols], factor)  ## as.factor() could also be used

結果を確認する。

sapply(data, class)
#        A         B         C         D         E         F         G 
# "factor" "integer"  "factor"  "factor" "integer" "integer" "integer" 
#        H         I         J 
# "factor" "integer" "integer"