データの要約は意外と面倒くさい作業です。そこで、手軽にデータの要約が可能なsummarytoolsをご紹介します。
「summarytool」パッケージの導入
下記コードを実行することで導入することができます。お好きな方をどうぞ。
#githubから #devtoolsがインストールされていなければ#を取って下記のコマンドを実行 #install.packages("devtools") library(devtools) install_github("dcomtois/summarytools") #CRNAからインストール install.packages("summarytools", type = "source")
コマンド
summarytoolsは行やグループ、データフレーム全体の要約ができます。要約のデータは変数に格納してエクセル等に出力可能です。
データのエクセル化はこちらの記事から。
#ライブラリの読み込み
library(summarytools)
#データ例を作成
Data <- matrix(rep(c(4, 7, 8, NA, 11, 15), 100), 10, 10)
colnames(Data) <- paste("Col", 1:10, sep = "") #行名の付与
Data <- data.frame(Group = sample(c("Group1", "Group2", "Group3"), 10, replace = TRUE, prob = c(1, 1, 1)), Data) #グループ名の追加
#データの要約を表示、データは変数に格納してエクセル等に出力可能です。
freq(Data[, 1]) #Groupの要約
Variable name: Data[, 1]
Frequencies
N %Valid %Cum.Valid %Total %Cum.Total
------------ --- -------- ------------ -------- ------------
Group1 4 40 40 40 40
Group2 3 30 70 30 70
Group3 3 30 100 30 100
<NA> 0 NA NA 0 100
Total 10 100 100 100 100
desc(Data) #行の要約
Descriptive Statistics
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10
----------------- ------ ------ ------ ------ ------ ------ ------ ------ ------ -------
Mean 8 9.11 9.88 8 9.11 9.88 8 9.11 9.88 8
Std.Dev 3.63 4.17 3.87 3.63 4.17 3.87 3.63 4.17 3.87 3.63
Min 4 4 4 4 4 4 4 4 4 4
Max 15 15 15 15 15 15 15 15 15 15
Median 7.5 8 9.5 7.5 8 9.5 7.5 8 9.5 7.5
MAD 2.97 4.45 2.97 2.97 4.45 2.97 2.97 4.45 2.97 2.97
IQR 2.5 4 4.25 2.5 4 4.25 2.5 4 4.25 2.5
CV 2.21 2.19 2.55 2.21 2.19 2.55 2.21 2.19 2.55 2.21
Skewness 0.63 0.21 0.07 0.63 0.21 0.07 0.63 0.21 0.07 0.63
SE.Skewness 0.75 0.72 0.75 0.75 0.72 0.75 0.75 0.72 0.75 0.75
Kurtosis -0.83 -1.59 -1.51 -0.83 -1.59 -1.51 -0.83 -1.59 -1.51 -0.83
dfSummary(Data) #データ全体の要約、結果は抜粋です。
--------------------------------------------------------------------------------------------
num variable.name properties factor.levels.or.stats frequencies n.valid
----- --------------- ------------- ------------------------------ ------------- -----------
1 Group type:integer 1. Group1 1: 4 (40%) 10 (100.0%)
class:factor 2. Group2 2: 3 (30%)
3. Group3 3: 3 (30%)
2 Col1 type:double avg (sd) = 8 (3.63) 4: 2 (25%) 8 (80.0%)
class:numeric min < med < max = 4 < 7.5 < 15 7: 2 (25%)
IQR (CV) = 2.5 (0.45) 8: 2 (25%)
11: 1 (12.5%)
15: 1 (12.5%)
3 Col2 type:double avg (sd) = 9.11 (4.17) 4: 2 (22.2%) 9 (90.0%)
class:numeric min < med < max = 4 < 8 < 15 7: 2 (22.2%)
IQR (CV) = 4 (0.46) 8: 1 (11.1%)
11: 2 (22.2%)
15: 2 (22.2%)
[/code]
少しでも、ウェブや実験の解析が楽になりますように!!