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