Rで解析:記述統計に大変便利です!「demotables」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

記述統計作成に大変便利なパッケージの紹介です。カテゴリ変数と量的変数を分けて結果を出力する「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

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました