factor class操作の役に立つパッケージの紹介です。意外と便利なパッケージだと思います。
パッケージバージョンは1.0.0。windows 10のR version 3.3.2で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール
install.packages("lfactors")
実行コマンド
詳細はコマンド、パッケージのヘルプを確認してください。
#パッケージの読み込み
library("lfactors")
#lfactor classの作成:lfactorコマンド
#データを指定:xオプション
#levelsを設定:levelsオプション
#labelsを設定:labelsオプション
LFactData <- lfactor(x = sample(1:12, 30, replace = TRUE),
levels = 1:12,
labels = paste0("Data", 1:12))
#内容確認
LFactData
[1] Data11 Data9 Data6 Data3 Data9 Data9 Data5 Data3 Data12 Data4
[11] Data10 Data12 Data2 Data4 Data2 Data7 Data7 Data1 Data1 Data11
[21] Data9 Data2 Data12 Data3 Data2 Data2 Data10 Data6 Data6 Data10
12 Levels: Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 Data9 ... Data12
Numeric levels: 1 2 3 4 5 6 7 8 9 10 11 12
#classの確認
class(LFactData)
[1] "lfactor" "factor"
###データ操作例#####
#ラベルでデータを抽出
#factor classでも同じ操作が可能
#位置を確認
LFactData == "Data4"
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
[13] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[25] FALSE FALSE FALSE FALSE FALSE FALSE
#個数を確認
sum(LFactData == "Data4")
[1] 2
#抽出
LFactData[LFactData == "Data4"]
[1] Data4 Data4
12 Levels: Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 Data9 ... Data12
Numeric levels: 1 2 3 4 5 6 7 8 9 10 11 12
#Numeric levelsで抽出
#factor classでは工夫が必要
LFactData == 2
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
[25] TRUE TRUE FALSE FALSE FALSE FALSE
#抽出
LFactData[LFactData == 2]
[1] Data2 Data2 Data2 Data2 Data2
12 Levels: Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 Data9 ... Data12
Numeric levels: 1 2 3 4 5 6 7 8 9 10 11 12
#演算子が可能
LFactData[LFactData > 3]
[1] Data11 Data9 Data6 Data9 Data9 Data5 Data12 Data4 Data10 Data12
[11] Data4 Data7 Data7 Data11 Data9 Data12 Data10 Data6 Data6 Data10
12 Levels: Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 Data9 ... Data12
Numeric levels: 1 2 3 4 5 6 7 8 9 10 11 12
#個数を確認
sum(LFactData > 3)
[1] 20
#参考_factor classで演算子を使用して個数を確認
#as.numericコマンドを使用する
FactData <- as.factor(LFactData)
#classの確認
class(FactData)
[1] "factor"
#内容確認
FactData
[1] Data11 Data9 Data6 Data3 Data9 Data9 Data5 Data3 Data12 Data4
[11] Data10 Data12 Data2 Data4 Data2 Data7 Data7 Data1 Data1 Data11
[21] Data9 Data2 Data12 Data3 Data2 Data2 Data10 Data6 Data6 Data10
12 Levels: Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 Data9 ... Data12
#個数を確認
sum(as.numeric(FactData) > 3)
[1] 20
少しでも、あなたの解析が楽になりますように!!