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])
#&#27083;&#36896;&#30906;&#35469;
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" ...
########

#&#12459;&#12486;&#12468;&#12522;&#22793;&#25968;&#12392;&#37327;&#30340;&#22793;&#25968;&#12434;&#20998;&#12369;&#12390;&#35352;&#36848;&#32113;&#35336;&#12434;&#20986;&#21147;:dtable&#12467;&#12510;&#12531;&#12489;
#&#20986;&#21147;&#12398;&#20307;&#35009;&#12434;&#25972;&#12360;&#12427;:neat&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12463;&#12521;&#12473;&#12372;&#12392;&#12395;&#32080;&#26524;&#12434;&#26684;&#32013;:as.list&#12458;&#12503;&#12471;&#12519;&#12531;
#as.list&#12458;&#12503;&#12471;&#12519;&#12531;&#12398;&#35373;&#23450;&#12395;&#38306;&#12431;&#12425;&#12378;,&#32080;&#26524;&#12399;&#12522;&#12473;&#12488;&#25104;&#20998;&#12395;&#12487;&#12540;&#12479;&#12501;&#12524;&#12540;&#12512;&#12391;&#26684;&#32013;&#12373;&#12428;&#12414;&#12377;
#AsIs class&#12399;&#30465;&#30053;&#12373;&#12428;&#12427;&#12424;&#12358;&#12391;&#12377;
Result <- dtable(TestData, neat = TRUE, as.list = FALSE)
#&#27083;&#36896;&#12434;&#30906;&#35469;
str(Result)
List of 2
$ Freq:'data.frame': 28 obs. of  5 variables:
  #&#20869;&#23481;&#12434;&#30465;&#30053;
  $ Desc:'data.frame': 2 obs. of  15 variables:
  ..$ dataset : Factor w/ 1 level "data1": 1 1
#&#20869;&#23481;&#12434;&#30465;&#30053;
#&#32080;&#26524;&#12434;&#34920;&#31034;
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

#&#12487;&#12540;&#12479;&#12398;&#27083;&#36896;&#12434;class&#12372;&#12392;&#12395;&#34920;&#31034;:dclass&#12467;&#12510;&#12531;&#12489;
#&#32080;&#26524;&#12434;list&#12391;&#20986;&#21147;:as.list&#12458;&#12503;&#12471;&#12519;&#12531;
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

#&#25968;&#20516;class&#12395;&#23646;&#12377;&#12427;&#20840;&#12487;&#12540;&#12479;&#12398;&#35201;&#32004;:dnumeric&#12467;&#12510;&#12531;&#12489;
#&#25351;&#23450;&#12375;&#12383;class&#12395;&#23646;&#12377;&#12427;&#20840;&#12487;&#12540;&#12479;&#12364;&#20966;&#29702;&#12373;&#12428;&#12414;&#12377;
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

#&#25351;&#23450;&#12375;&#12383;&#25104;&#20998;&#21517;&#12392;&#38263;&#12373;&#12391;&#31354;&#12398;&#12522;&#12473;&#12488;&#12434;&#20316;&#25104;:create_list&#12467;&#12510;&#12531;&#12489;
create_list(c("a", "b"), 2)
$a
$a[[1]]
NULL
$a[[2]]
NULL

$b
$b[[1]]
NULL
$b[[2]]
NULL

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

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