Rで解析:行名・列名の操作がラクラクです「colr」パッケージ

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

データ解析時に意外と面倒な行名・列名の操作がラクラクなパッケージの紹介です。文字列操作は正規表現を知っていると作業効率の改善になると考えます。

パッケージバージョンは0.1.900。R version 3.3.2で動作を確認しています。

スポンサーリンク

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

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

#パッケージのインストール
install.packages("colr")

実行コマンド

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

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

###データ例の作成#####
n <- 10
TestData <- data.frame("Group" = sample(paste0("Group", 1:5), n, replace = TRUE),
                       "Data1" = sample(1:50, n, replace = TRUE),
                       "Data2" = sample(1:35, n, replace = TRUE),
                       "Data3" = sample(1:10, n, replace = TRUE),
                       "Vol.1" = sample(1:50, n, replace = TRUE),
                       "Vol.2" = sample(1:35, n, replace = TRUE),
                       "Vol.3" = sample(1:10, n, replace = TRUE))
#&#34892;&#21517;&#12434;&#20184;&#19982;
rownames(TestData) <- paste0(c("Group", "Data", "Vol"), 1:n)
#&#20869;&#23481;&#30906;&#35469;
TestData
Group Data1 Data2 Data3 Vol.1 Vol.2 Vol.3
Group1  Group2    17    20     1     8    26     7
Data2   Group4    27    32     2    20    27     3
Vol3    Group3     8    20     3    28    15     9
Group4  Group4    30    20     3    22    20     9
Data5   Group1    36    29     2    46    31     3
Vol6    Group4    15     2     4    20    15     2
Group7  Group2    18    30     1    47    29     2
Data8   Group3    14    13     9     2    32     4
Vol9    Group2    41     4     8    33    35     1
Group10 Group1    50    11     1    11     4     2
########

#&#25351;&#23450;&#12375;&#12383;&#20869;&#23481;&#12391;&#34892;&#12414;&#12383;&#12399;&#21015;&#12434;&#25277;&#20986;:cgrep&#12467;&#12510;&#12531;&#12489;
#&#12487;&#12540;&#12479;&#12434;&#25351;&#23450;:x&#12458;&#12503;&#12471;&#12519;&#12531;
#&#25277;&#20986;&#20869;&#23481;&#12434;&#35373;&#23450;:pattern&#12458;&#12503;&#12471;&#12519;&#12531;;&#27491;&#35215;&#34920;&#29694;&#12398;&#20351;&#29992;&#21487;&#33021;
#&#26908;&#32034;&#26041;&#21521;&#12434;&#25351;&#23450;:dim&#12458;&#12503;&#12471;&#12519;&#12531;:c;&#21015;&#26041;&#21521;,r;&#34892;&#26041;&#21521;
cgrep(x = TestData, pattern = "Vol", dim = "r")
Group Data1 Data2 Data3 Vol.1 Vol.2 Vol.3
Vol3 Group3     8    20     3    28    15     9
Vol6 Group4    15     2     4    20    15     2
Vol9 Group2    41     4     8    33    35     1

#&#34892;&#12414;&#12383;&#12399;&#21015;&#21517;&#12434;&#32622;&#25563;:csub&#12467;&#12510;&#12531;&#12489;
#&#12487;&#12540;&#12479;&#12434;&#25351;&#23450;:x&#12458;&#12503;&#12471;&#12519;&#12531;
#&#23550;&#35937;&#20869;&#23481;&#12434;&#35373;&#23450;:pattern&#12458;&#12503;&#12471;&#12519;&#12531;;&#27491;&#35215;&#34920;&#29694;&#12398;&#20351;&#29992;&#21487;&#33021;
#&#32622;&#25563;&#20869;&#23481;&#12434;&#35373;&#23450;:replacement&#12458;&#12503;&#12471;&#12519;&#12531;;&#27491;&#35215;&#34920;&#29694;&#12398;&#20351;&#29992;&#21487;&#33021;
#&#26908;&#32034;&#26041;&#21521;&#12434;&#25351;&#23450;:dim&#12458;&#12503;&#12471;&#12519;&#12531;:c;&#21015;&#26041;&#21521;,r;&#34892;&#26041;&#21521;
csub(x = TestData, pattern = "a",
     replacement = "A", dim = "c")
Group DAtA1 DAtA2 DAtA3 Vol.1 Vol.2 Vol.3
Group1  Group2    17    20     1     8    26     7
Data2   Group4    27    32     2    20    27     3
Vol3    Group3     8    20     3    28    15     9
Group4  Group4    30    20     3    22    20     9
Data5   Group1    36    29     2    46    31     3
Vol6    Group4    15     2     4    20    15     2
Group7  Group2    18    30     1    47    29     2
Data8   Group3    14    13     9     2    32     4
Vol9    Group2    41     4     8    33    35     1
Group10 Group1    50    11     1    11     4     2

###&#27491;&#35215;&#34920;&#29694;&#12398;&#20363;#####
#[]&#12391;&#22258;&#12414;&#12428;&#12383;&#25991;&#23383;&#12398;&#12393;&#12428;&#12363;&#12392;&#19968;&#33268;
cgrep(x = TestData, pattern = "[3a]", dim = "r")
Group Data1 Data2 Data3 Vol.1 Vol.2 Vol.3
Data2 Group1    25    32     5    44     9     3
Vol3  Group3    34    11     8    50    15     4
Data5 Group1    43    22     7    22    12     7
Data8 Group4    28    15     9    47     5     8
#^&#12391;&#21542;&#23450;,Data&#25968;&#23383;&#12434;&#38750;&#36984;&#25246;
#[:digit:]&#25968;&#23383;&#12434;&#24847;&#21619;&#12377;&#12427;
cgrep(x = TestData, pattern = "[^Data[:digit:]]", dim = "r")
Group Data1 Data2 Data3 Vol.1 Vol.2 Vol.3
Group1  Group2    48    32     9    17    14     1
Vol3    Group3    34    11     8    50    15     4
Group4  Group2    42    32     6    24    12     4
Vol6    Group3    15    11     7    50    28     4
Group7  Group3     8    22     9    49     6     1
Vol9    Group4    26    30     8    19    13     9

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

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