本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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

データの特徴を探るのに便利な中央値、範囲、分位数に関するコマンドが収録されています。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

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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.