データの特徴を探るのに便利な中央値、範囲、分位数に関するコマンドが収録されています。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
少しでも、あなたの解析が楽になりますように!!