Rで解析:matrix操作が面白い!「matrixStats」パッケージの紹介

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

matrixを簡単に操作できる「matrixStats」パッケージの中から使用頻度が高そうなコマンドを紹介します。matrixの操作は基本コマンドで十分できますが、慣れるまでは本パッケージを利用しながら使い方を学ぶのもありかと思います。

また、「matrixStats」パッケージは多くのコマンドが収録されていますので、気になる方はヘルプを参照ください。

パッケージバージョンは0.14.1です。
コマンドはR version 3.2.0で確認しています。


スポンサーリンク

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

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

#パッケージのインストール
install.packages("matrixStats", type = "source")


データ例の作成

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

#100*100のデータを作成
set.seed(1234)
TMatrix 

</p><h2>&#23455;&#34892;&#12467;&#12510;&#12531;&#12489;&#12398;&#32057;&#20171;</h2><p class="tmzr-el">
&#35443;&#32048;&#12399;&#12467;&#12513;&#12531;&#12488;&#12434;&#30906;&#35469;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;

[code language="R"]
#&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#35501;&#12415;&#36796;&#12415;
library("matrixStats")

###&#12487;&#12540;&#12479;&#12395;&#27424;&#25613;&#20516;&#12364;&#12354;&#12427;&#12363;&#30906;&#35469;:anyMissing, colAnyMissings, rowAnyMissings&#12467;&#12510;&#12531;&#12489;###
#&#12487;&#12540;&#12479;&#20840;&#20307;&#12434;&#30906;&#35469;
anyMissing(TMatrix)
[1] TRUE

#&#34892;&#12434;&#30906;&#35469;
colAnyMissings(TMatrix)
[1]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
#FALSE:4&#34892;&#30446;&#12434;&#30906;&#35469;
TMatrix[, 4]
[1] 137  80  92 153  55 228  61  78 298 243
#TRUE:1&#34892;&#30446;&#12434;&#30906;&#35469;
TMatrix[, 1]
[1]  NA 187 183 188  NA 193   3  NA 200 155

#&#21015;&#12434;&#30906;&#35469;
rowAnyMissings(TMatrix)
[1]  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
#FALSE:3&#21015;&#30446;&#12434;&#30906;&#35469;
TMatrix[3,]
[1] 183  85  48  92  94 216  96   5  43  41
#TRUE:1&#21015;&#30446;&#12434;&#30906;&#35469;
TMatrix[1,]
[1]  NA 209  95 137 167  23 260  37 278  50
######

###&#37197;&#21015;&#12363;&#12425;&#26012;&#12417;&#12395;&#12487;&#12540;&#12479;&#12434;&#21462;&#24471;:rowCollapse, colCollapse&#12467;&#12510;&#12531;&#12489;
#&#34892;&#26041;&#21521;&#12395;&#26012;&#12417;
rowCollapse(TMatrix, 2:4)
[1] 209  NA  92 278  66 228  86 275 298  NA
TMatrix[, 2:4]
&#12288;&#12288;[,1] [,2] [,3]
[1,]  209   95  137
[2,]  164   NA   80
[3,]   85   48   92
[4,]  278   12  153
[5,]   88   66   55
[6,]   NA  244  228
[7,]   86  158   61
[8,]   81  275   78
[9,]   57  250  298
[10,]   NA   NA  243

#&#21015;&#26041;&#21521;&#12395;&#26012;&#12417;
colCollapse(TMatrix, 2:4)
[1] 187  85  12  80  94 152  13   5 164 271
TMatrix[2:4,]
&#12288;&#12288;[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]  187  164   NA   80  194   93   13  268  142   271
[2,]  183   85   48   92   94  216   96    5   43    41
[3,]  188  278   12  153  187  152    5  235  164    40
######

###&#25351;&#23450;&#12375;&#12383;&#20516;&#12398;&#20491;&#25968;&#12434;&#26908;&#20986;:colCounts, rowCounts&#12467;&#12510;&#12531;&#12489;
#&#20849;&#36890;&#12398;&#12458;&#12503;&#12471;&#12519;&#12531;:value = &#25351;&#23450;&#12375;&#12383;&#20516;, na.rm = TRUE
#&#21508;&#34892;&#12434;&#30906;&#35469;
colCounts(TMatrix, value = NA, na.rm = TRUE)
[1] 3 2 2 0 0 0 0 0 1 2
#&#21508;&#34892;&#12434;&#30906;&#35469;
rowCounts(TMatrix, value = NA, na.rm = TRUE)
[1] 1 1 0 0 1 2 1 1 1 2
######

###&#21508;&#34892;,&#21015;&#12398;&#32207;&#21644;,&#28187;&#31639;,&#26368;&#22823;&#20516;&#12434;&#35336;&#31639;
#&#32207;&#21644;,NA&#20516;&#12398;&#22580;&#25152;&#12391;&#35336;&#31639;&#12364;&#27490;&#12414;&#12426;&#12414;&#12377;
#&#21015;&#26041;&#21521;&#12395;&#31309;&#31639;
colCumsums(TMatrix)
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   NA  209   95  137  167   23  260   37  278    50
[2,]   NA  373   NA  217  361  116  273  305  420   321
&#30465;&#30053;
[9,]   NA   NA   NA 1182 1316 1110  920  963   NA    NA
[10,]   NA   NA   NA 1425 1546 1365 1090 1164   NA    NA
#&#34892;&#26041;&#21521;&#12395;&#31309;&#31639;
rowCumsums(TMatrix)
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA
[2,]  187  351   NA   NA   NA   NA   NA   NA   NA    NA
&#30465;&#30053;
[9,]  200  257  507  805  879  932  948 1045   NA    NA
[10,]  155   NA   NA   NA   NA   NA   NA   NA   NA    NA

#&#28187;&#31639;,NA&#20516;&#12398;&#22580;&#25152;&#12391;&#35336;&#31639;&#12364;&#27490;&#12414;&#12426;&#12414;&#12377;
#&#21015;&#26041;&#21521;&#12395;&#28187;&#31639;
colCummins(TMatrix)
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   NA  209   95  137  167   23  260   37  278    50
[2,]   NA  164   NA   80  167   23   13   37  142    50
&#30465;&#30053;
[9,]   NA   NA   NA   55   74   23    5    5   NA    NA
[10,]   NA   NA   NA   55   74   23    5    5   NA    NA
#&#34892;&#26041;&#21521;&#12395;&#28187;&#31639;
rowCummins(TMatrix)
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA
[2,]  187  164   NA   NA   NA   NA   NA   NA   NA    NA
&#30465;&#30053;
[9,]  200   57   57   57   57   53   16   16   NA    NA
[10,]  155   NA   NA   NA   NA   NA   NA   NA   NA    NA

#&#26368;&#22823;&#20516;,NA&#20516;&#12398;&#22580;&#25152;&#12391;&#35336;&#31639;&#12364;&#27490;&#12414;&#12426;&#12414;&#12377;
#&#21015;&#26041;&#21521;&#12395;&#26368;&#22823;&#20516;
colCummaxs(TMatrix)
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   NA  209   95  137  167   23  260   37  278    50
[2,]   NA  209   NA  137  194   93  260  268  278   271
&#30465;&#30053;
[9,]   NA   NA   NA  298  204  226  260  268   NA    NA
[10,]   NA   NA   NA  298  230  255  260  268   NA    NA
#&#34892;&#26041;&#21521;&#12395;&#26368;&#22823;&#20516;
rowCummaxs(TMatrix)
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]   NA   NA   NA   NA   NA   NA   NA   NA   NA    NA
[2,]  187  187   NA   NA   NA   NA   NA   NA   NA    NA
&#30465;&#30053;
[9,]  200  200  250  298  298  298  298  298   NA    NA
[10,]  155   NA   NA   NA   NA   NA   NA   NA   NA    NA
######

###&#24046;&#20998;&#12434;&#35336;&#31639;:Diffs&#12467;&#12510;&#12531;&#12489;
#&#26368;&#22823;&#20516;,NA&#20516;&#12398;&#22580;&#25152;&#12391;&#35336;&#31639;&#12364;&#27490;&#12414;&#12426;&#12414;&#12377;
#&#21015;&#26041;&#21521;&#12395;&#24046;&#20998;
colDiffs(TMatrix, lag = 1L, differences = 1L)
#&#34892;&#26041;&#21521;&#12395;&#24046;&#20998;
rowDiffs(TMatrix, lag = 1L, differences = 1L)
######

###&#20013;&#22830;&#20516;&#12434;&#26908;&#20986;:Medians&#12467;&#12510;&#12531;&#12489;
#&#21508;&#34892;
colMedians(TMatrix, na.rm = TRUE)
[1] 187.0  87.0 126.5 114.5 159.0 150.5  94.5 106.5 142.0  45.5
#&#21508;&#21015;
rowMedians(TMatrix, na.rm = TRUE)
[1] 137.0 164.0  88.5 158.5  59.0 202.5 116.0  94.0  93.0 226.5


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

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