Rで解析:factor classの操作に便利です「forcats」パッケージ

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

factor classはdata.frame classと同じくらいにRを利用する上で重要な概念だと思います。でも、Levelsの概念に慣れるまでに時間が必要です。たまに操作後に必要の無いLevelsが残り面倒です。そんな面倒を解決するパッケージの紹介です。

本パッケージはggplot2やRStudioに関わるHadley氏です。今後のアップデートが非常に楽しみなパッケージです。

パッケージバージョンは0.0.0.9000。windows 7およびOS X 10.11.5のR version 3.3.1で確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("devtools")
devtools::install_github("hadley/forcats")

実行コマンドの紹介

詳細はコマンド、パッケージのヘルプを確認してください。

#パッケージの読込
library("forcats")

###データ例の作成#####
TestData1 <- factor(sample(c(LETTERS[1:5], letters[1:5]), 20, replace = TRUE))
TestData2 <- factor(sample(letters[1:5], 15, replace = TRUE), levels = letters[1:24])
#確認
TestData1
[1] a e e D C D D e B E A a A D a e A a A D
Levels: a A B C D e E
TestData2
[1] c a b d b b c c b b b a b b c
Levels: a b c d e f g h i j k l m n o p q r s t u v w x
########

#factorの結合:fct_cコマンド
#対象はlistコマンドで指定
fct_c(list(TestData1, TestData2))
[1] a e e D C D D e B E A a A D a e A a A D c a b d b b c c b b b a b b c
Levels: a A B C D e E b c d f g h i j k l m n o p q r s t u v w x

#条件に合う因子を抽出:fct_collapseコマンド
#条件以外を指定内容で置き換え:other_levelオプション
#n,propオプションの同時使用は不可
#出現数で指定:nオプション
fct_collapse(TestData1, n = 4, other_level = "Other")
[1] a e e D Other D D e Other Other A a A D
[15] a e A a A D
Levels: a A Other D e
#出現割合で指定:propオプション
fct_collapse(TestData1, prop = 0.2, other_level = "Other")
[1] Other Other Other D Other D D Other Other Other Other Other Other D
[15] Other Other Other Other Other D
Levels: Other D

#使用していないlevelを削除:fct_dropコマンド
fct_drop(TestData2)
[1] c a b d b b c c b b b a b b c
Levels: a b c d

#出現順に水準を並び替え:fct_inorderコマンド
fct_inorder(TestData1)
[1] a e e D C D D e B E A a A D a e A a A D
Levels: a e D C B E A

#出現数順に水準を並び替え:fct_infreqコマンド
fct_infreq(TestData1)
[1] a e e D C D D e B E A a A D a e A a A D
Levels: D a A e B C E

#水準を指定水準を先頭に並び替え:fct_relevelコマンド
fct_relevel(TestData1, "e")
[1] a e e D C D D e B E A a A D a e A a A D
Levels: e a A B C D E

#水準を変更:fct_recodeコマンド
#変更内容="変更する水準"で指定
fct_recode(TestData1, Karada = "D", Good = "a")
[1] Good e e Karada C Karada Karada e B E A Good
[13] A Karada Good e A Good A Karada
Levels: Good A B C Karada e E

少しでも、あなたのウェブや実験の解析が楽になりますように!!

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