Rによるグループ別 基本統計量の出し方 (2)
先日、投稿した「基本統計量の出し方」noteについて、twitterで他のやり方もあるよ!って教えてもらったので、それぞれ実行してみました!
元投稿は下記。
その5:stby()関数(summarytoolsパッケージ)使用
データポエマーさん(@bob3bob3)から教えていただいたコードです。
この関数は知らなかった!
実行してみました!
グループ名表示もサクッと出て、出したい項目も自分で設定できる。
素敵です・・・!
> library(summarytools)
> stby(data = iris,
+ INDICES = iris$Species,
+ FUN = descr,
+ stats = c("mean", "sd", "min", "Q1", "med", "Q3", "max"),
+ transpose = TRUE)
Non-numerical variable(s) ignored: Species
Descriptive Statistics
iris
Group: Species = setosa
N: 50
Mean Std.Dev Min Q1 Median Q3 Max
------------------ ------ --------- ------ ------ -------- ------ ------
Petal.Length 1.46 0.17 1.00 1.40 1.50 1.60 1.90
Petal.Width 0.25 0.11 0.10 0.20 0.20 0.30 0.60
Sepal.Length 5.01 0.35 4.30 4.80 5.00 5.20 5.80
Sepal.Width 3.43 0.38 2.30 3.20 3.40 3.70 4.40
Group: Species = versicolor
N: 50
Mean Std.Dev Min Q1 Median Q3 Max
------------------ ------ --------- ------ ------ -------- ------ ------
Petal.Length 4.26 0.47 3.00 4.00 4.35 4.60 5.10
Petal.Width 1.33 0.20 1.00 1.20 1.30 1.50 1.80
Sepal.Length 5.94 0.52 4.90 5.60 5.90 6.30 7.00
Sepal.Width 2.77 0.31 2.00 2.50 2.80 3.00 3.40
Group: Species = virginica
N: 50
Mean Std.Dev Min Q1 Median Q3 Max
------------------ ------ --------- ------ ------ -------- ------ ------
Petal.Length 5.55 0.55 4.50 5.10 5.55 5.90 6.90
Petal.Width 2.03 0.27 1.40 1.80 2.00 2.30 2.50
Sepal.Length 6.59 0.64 4.90 6.20 6.50 6.90 7.90
Sepal.Width 2.97 0.32 2.20 2.80 3.00 3.20 3.80
その6:summarise_each()関数 Revise!
しぶてぃさん(@takuizum)から教えていただいたコードです。
前回、列名が広がりすぎて見づらくなってたsummarise_each() が、ものすごくすっきりしました!
実行結果がこちら。
コンパクトな表にまとまりました…!
> iris %>%select(Species, Sepal.Width, Petal.Width) %>%
+ gather(key = type, value = width, -Species) %>%
+ group_by(Species, type) %>%
+ summarise_each(list(N = length, min = min, max = max, med = median, sd = sd))
# A tibble: 6 x 7
# Groups: Species [3]
Species type N min max med sd
<fct> <chr> <int> <dbl> <dbl> <dbl> <dbl>
1 setosa Petal.Width 50 0.1 0.6 0.2 0.105
2 setosa Sepal.Width 50 2.3 4.4 3.4 0.379
3 versicolor Petal.Width 50 1 1.8 1.3 0.198
4 versicolor Sepal.Width 50 2 3.4 2.8 0.314
5 virginica Petal.Width 50 1.4 2.5 2 0.275
6 virginica Sepal.Width 50 2.2 3.8 3 0.322
この記事が気に入ったらサポートをしてみませんか?