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
少しでも、あなたのウェブや実験の解析が楽になりますように!!