Rで解析:データの特徴を探ろう。「matrixStats」パッケージ

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

データの特徴を探るのに便利な中央値、範囲、分位数に関するコマンドが収録されています。matrixの単語がパッケージに含まれていますが、as.matrixコマンドを使用することでdata.frameにも適応することができます。

applyコマンドや他コマンドでも同様のことが可能です。とにかくパッケージで手軽に解決したい方にオススメです。多くのコマンドから、使いそうなコマンドを紹介します。

パッケージのバージョンは0.63.0。実行コマンドはR version 4.2.2で確認しています。

スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
n <- 100
TestDF <- data.frame(Group = sample(paste0("Group", 1:10), n, replace = TRUE),
                     Data1 = sample(1:100, n, replace = TRUE),
                     Data2 = rnorm(n),
                     Data3 = sample(1:100, n, replace = TRUE),
                     Data4 = sample(1:100, n, replace = TRUE))
#####

#中央値の確認
#medianコマンド
median(TestDF[, 2])
[1] 50
#以下、matrix classで複数列行に適応
colMedians(as.matrix(TestDF[, 2:3]))
[1] 50.0000000 -0.1517859
rowMedians(as.matrix(TestDF[1:3, 2:3]))
[1] 0.1413045 1.6763626 7.1909743

#分散を確認
#varコマンド
var(TestDF[, 2])
[1] 893.0707
#以下、matrix classで複数列行に適応
colVars(as.matrix(TestDF[, 2:3]))
[1] 893.070707   1.136584
rowVars(as.matrix(TestDF[1:3, 2:3]))
[1]   6.909498  10.798582 121.961765

#標準偏差を確認
#sdコマンド
sd(TestDF[, 2])
[1] 29.88429
#以下、matrix classで複数列行に適応
colSds(as.matrix(TestDF[, 2:3]))
[1] 29.884289  1.066107
rowSds(as.matrix(TestDF[1:3, 2:3]))
[1]  2.628592  3.286120 11.043630

#median absolute deviationを確認
#madコマンド
mad(TestDF[, 2])
[1] 39.2889
#以下、matrix classで複数列行に適応
colMads(as.matrix(TestDF[, 2:3]))
[1] 39.288900  1.064396
rowMads(as.matrix(TestDF[1:3, 2:3]))
[1]  2.755702  3.445025 11.577662

#分位数を確認
#quantileコマンド
quantile(TestDF[, 2])
0%    25%    50%    75%   100% 
1.00  23.75  50.00  75.50 100.00 
#以下、matrix classで複数列行に適応
colQuantiles(as.matrix(TestDF[, 2:3]))
0%       25%        50%        75%       100%
Data1  1.000000 23.750000 50.0000000 75.5000000 100.000000
Data2 -2.989261 -0.828235 -0.1517859  0.6570286   2.319136
####
rowQuantiles(as.matrix(TestDF[1:3, 2:3]))
0%        25%       50%       75% 100%
1 -1.7173910 -0.7880432 0.1413045  1.070652    2
2 -0.6472748  0.5145439 1.6763626  2.838181    4
3 -0.6180514  3.2864614 7.1909743 11.095487   15

#範囲を確認
#rangeコマンド
range(TestDF[, 2])
[1]   1 100
#以下、matrix classで複数列行に適応
colRanges(as.matrix(TestDF[, 2:3]))
[,1]       [,2]
[1,]  1.000000 100.000000
[2,] -2.989261   2.319136
####
rowRanges(as.matrix(TestDF[1:3, 2:3]))
[,1] [,2]
[1,] -1.7173910    2
[2,] -0.6472748    4
[3,] -0.6180514   15

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

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