Rで解析:factor class操作の役に立つ!!「lfactors」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

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 &gt; 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 &gt; 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) &gt; 3)
[1] 20

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました