記述統計作成に大変便利なパッケージの紹介です。カテゴリ変数と量的変数を分けて結果を出力する「dtable」コマンドはオススメです。
また、パッケージにはデータ変数をclassごとにまとめて出力する「dclass」コマンド、指定した数値classに属する全データを要約する「dnumeric」コマンド、指定した成分名と長さで空のリストを作成する「create_list」コマンドが収録されています。
なお、パッケージバージョンが0.0.1で一部のヘルプが実装されていません。今後のバージョンアップに期待です。
実行コマンドはR version 3.2.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール
install.packages("devtools")
devtools::install_github("gitronald/demotables")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
##パッケージの読み込み
library("demotables")
###データ例の作成#####
n <- 20
TestData <- data.frame(AsisData = I(sample(paste0("ASIS", 1:3), n, replace = TRUE)),
NumData = rnorm(n),
FacData = sample(paste0(LETTERS[1:24]), n, replace = TRUE),
IntData = sample(1:10, n, replace = TRUE),
LogiData = sample(c(TRUE, FALSE), n, replace = TRUE),
chrData = sample(c("a", "b", "c", "d"), n, replace = TRUE))
TestData[ ,6] <- as.character(TestData[ ,6])
#構造確認
str(TestData)
'data.frame': 20 obs. of 6 variables:
$ AsisData:Class 'AsIs' chr [1:20] "ASIS2" "ASIS2" "ASIS1" "ASIS1" ...
$ NumData : num 0.0407 1.4073 -1.2281 -0.4624 -0.0478 ...
$ FacData : Factor w/ 13 levels "A","B","C","I",..: 5 10 3 7 4 6 1 12 2 7 ...
$ IntData : int 6 1 2 3 9 2 6 5 9 4 ...
$ LogiData: logi TRUE TRUE TRUE TRUE TRUE TRUE ...
$ chrData : chr "d" "d" "d" "d" ...
########
#カテゴリ変数と量的変数を分けて記述統計を出力:dtableコマンド
#出力の体裁を整える:neatオプション
#クラスごとに結果を格納:as.listオプション
#as.listオプションの設定に関わらず,結果はリスト成分にデータフレームで格納されます
#AsIs classは省略されるようです
Result <- dtable(TestData, neat = TRUE, as.list = FALSE)
#構造を確認
str(Result)
List of 2
$ Freq:'data.frame': 28 obs. of 5 variables:
#内容を省略
$ Desc:'data.frame': 2 obs. of 15 variables:
..$ dataset : Factor w/ 1 level "data1": 1 1
#内容を省略
#結果を表示
Result
$Freq
Dataset Demographic Group Freq Perc
1 data1 chrData c 7 35.0%
2 b 5 25.0%
3 d 5 25.0%
4 a 3 15.0%
5 data1 FacData M 4 20.0%
6 A 2 10.0%
7 C 2 10.0%
8 L 2 10.0%
9 S 2 10.0%
10 B 1 5.0%
11 I 1 5.0%
12 K 1 5.0%
13 N 1 5.0%
14 Q 1 5.0%
15 U 1 5.0%
16 W 1 5.0%
17 X 1 5.0%
18 data1 IntData 9 5 25.0%
19 1 3 15.0%
20 2 2 10.0%
21 3 2 10.0%
22 4 2 10.0%
23 5 2 10.0%
24 6 2 10.0%
25 7 1 5.0%
26 10 1 5.0%
27 data1 LogiData FALSE 10 50.0%
28 TRUE 10 50.0%
$Desc
dataset variable vars n mean sd median trimmed mad min max range skew kurtosis se
1 data1 NumData 1 20 0.2 1.0 0 0.2 1.2 -1.4 1.8 3.2 0.2 -1.4 0.2
2 data1 IntData 1 20 5.2 3.1 5 5.2 4.4 1.0 10.0 9.0 0.1 -1.6 0.7
#データの構造をclassごとに表示:dclassコマンド
#結果をlistで出力:as.listオプション
dclass(TestData, as.list = TRUE)
$AsIs
variable class
1 AsisData AsIs
$character
variable class
6 chrData character
$factor
variable class
3 FacData factor
$integer
variable class
4 IntData integer
$logical
variable class
5 LogiData logical
$numeric
variable class
2 NumData numeric
#数値classに属する全データの要約:dnumericコマンド
#指定したclassに属する全データが処理されます
dnumeric(TestData, "IntData")
dataset variable vars n mean sd median trimmed mad min max range skew kurtosis se
1 TestData IntData 1 20 5.2 3.1 5 5.2 4.4 1 10 9 0.1 -1.6 0.7
#指定した成分名と長さで空のリストを作成:create_listコマンド
create_list(c("a", "b"), 2)
$a
$a[[1]]
NULL
$a[[2]]
NULL
$b
$b[[1]]
NULL
$b[[2]]
NULL
少しでも、あなたの解析が楽になりますように!!