手元のデータをすばやく、見やすくまとめたい、そんなときにこのsummarytoolsパッケージが有効かもしれない。
Rが提供する要約関数は複雑なものが多く、初心者には優しくない。summarytoolsパッケージが提供する関数の数は少ないが、データフレームの概要を把握するために必要な機能を備えている。
下記でもいくつか試しているが、表示のためのオプションが充実していて印象が良い。GitHubのREADMEに書いてある内容を検証してみた。
library(summarytools)
##
## Attaching package: 'summarytools'
##
## The following object is masked from 'package:dplyr':
##
## desc
dfSummary(iris)
| num | variable.name | properties | factor.levels.or.stats | frequencies | n.valid |
|---|---|---|---|---|---|
| 1 | Sepal.Length | type:double class:numeric | avg (sd) = 5.84 (0.83) min < med < max = 4.3 < 5.8 < 7.9 IQR (CV) = 1.3 (0.14) | 35 distinct values | 150 (100.0%) |
| 2 | Sepal.Width | type:double class:numeric | avg (sd) = 3.06 (0.44) min < med < max = 2 < 3 < 4.4 IQR (CV) = 0.5 (0.14) | 23 distinct values | 150 (100.0%) |
| 3 | Petal.Length | type:double class:numeric | avg (sd) = 3.76 (1.77) min < med < max = 1 < 4.35 < 6.9 IQR (CV) = 3.5 (0.47) | 43 distinct values | 150 (100.0%) |
| 4 | Petal.Width | type:double class:numeric | avg (sd) = 1.2 (0.76) min < med < max = 0.1 < 1.3 < 2.5 IQR (CV) = 1.5 (0.64) | 22 distinct values | 150 (100.0%) |
| 5 | Species | type:integer class:factor | 1. setosa 2. versicolor 3. virginica | 1: 50 (33.3%) 2: 50 (33.3%) 3: 50 (33.3%) | 150 (100.0%) |
Total number of observations: 150
RStudioの場合、Viewパネルに表示することもできる
dfSummary(iris) %>% View
freq(diamonds$cut, style = "rmarkdown", plain.ascii = FALSE, missing = "---")
##
## Variable name: diamonds$cut
Variable name: diamonds$cut
Frequencies
| N | %Valid | %Cum.Valid | %Total | %Cum.Total | |
|---|---|---|---|---|---|
| Fair | 1610 | 2.98 | 2.98 | 2.98 | 2.98 |
| Good | 4906 | 9.1 | 12.08 | 9.1 | 12.08 |
| Very Good | 12082 | 22.4 | 34.48 | 22.4 | 34.48 |
| Premium | 13791 | 25.57 | 60.05 | 25.57 | 60.05 |
| Ideal | 21551 | 39.95 | 100 | 39.95 | 100 |
| 0 | NA | NA | 0 | 100 | |
| Total | 53940 | 100 | 100 | 100 | 100 |
変数の平均値や標準偏差、最大値・最小値をまとめて表にしてくれる。
desc(cars, transpose = TRUE) # transpose引数は、表の向きを横向きにしてくれる
##
## Descriptive Statistics
Descriptive Statistics
| Mean | Std.Dev | Min | Max | Median | MAD | IQR | CV | Skewness | SE.Skewness | Kurtosis | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| speed | 15.4 | 5.29 | 4 | 25 | 15 | 5.93 | 7 | 2.91 | -0.11 | 0.34 | -0.67 |
| dist | 42.98 | 25.77 | 2 | 120 | 36 | 23.72 | 30 | 1.67 | 0.76 | 0.34 | 0.12 |
Observations
| Valid | Total | ||
|---|---|---|---|
| speed | 50 (100%) | 0 (0%) | 50 |
| dist | 50 (100%) | 0 (0%) | 50 |