Rで、データフレームの中身を一括で因子型に変換する方法
例えば、Rで↓こんなデータを扱っているとします。 # サンプルデータを作る Q1 <- c(1, 1, 2, 2) Q2 <- c(1, 2, 1, 2) Q3 <- c(1, 2, 3, 1) df <- data.frame(Q1, Q2 ,Q3) # 中身の確認 df Q1 Q2 Q3 1 1 1 1 2 1 2 2 3 2 1 3 4 2 2 1 読み込んだときの都合か何かで、データはinteger型とかnumeric型になっていると。 でも、実は質問 Q1、Q2、Q3に、1:はい、2:いいえ、3:どちらともいえない、とかで答えたもので、因子型として扱いたい。 多重対応分析のmcaとかを使おうとすると、 mca(df = df) でエラー: all variables must be factors が出ちゃうとか、そんなシチュエーション。 因子型に変換したいときには、as.factor関数ですが、これはデータフレームに対しては使えない。 こんな時は、あの一家。そう、applyファミリーの登場です。 lapplyを使って、1列ごとにas.factor関数を適用、リストとして返ってきたものを、またデータフレームに戻してやるという流れです。 df.fctr <- data.frame( lapply(df, as.factor) ) # 型の確認 df.fctr$Q1 [1] 1 1 2 2 Levels: 1 2 無事、因子型になりました。