Rで解析:データの探索に便利です。「DescTools」パッケージ

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

「データを解析する前におこなっている作業の紹介」を先日紹介しました。そんな、解析する前にデータの特徴を探るのに便利なコマンドが収録されたパッケージの紹介です。

データを解析する前の作業を紹介
https://www.karada-good.net/analyticsr/r-293/

多くのコマンドの中から、これは便利と感じた「素数、最大公約数、フィボナッチ数、要素の組み合わせ」と「データの特徴を把握しながら図式化する」コマンドを紹介します。その他のコマンドはパッケージヘルプを確認していただければと思います。

パッケージのバージョンは0.99.44。 windows11のR version 4.1.2で確認しています。


スポンサーリンク

パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("DescTools")

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("DescTools")

#nまでの素数の表示:Primeコマンド
Primes(n = 37)
[1]  2  3  5  7 11 13 17 19 23 29 31 37

#素数であるかの確認:IsPrimeコマンド
IsPrime(Primes(n = 37))
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

#最少公倍数の計算:LCMコマンド
LCM(2, 3)
[1] 6

#最大公約数の計算:GCDコマンド
GCD(160, 25)
[1] 5

#フィボナッチ数:Fibonacciコマンド
Fibonacci(1:6)
[1] 1 1 2 3 5 8

#要素の全組み合わせ:Permnコマンド
Permn(c(1:3))
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    1    3
[3,]    2    3    1
[4,]    1    3    2
[5,]    3    1    2
[6,]    3    2    1

#組み合わせの数を計算:factorialコマンド
factorial(length(c(1:3)))
[1] 6

#要素範囲を指定した全組み合わせ:CombSetコマンド
CombSet(c(1:3), 2, repl = FALSE, ord = TRUE)
      [,1] [,2]
[1,]    1    2
[2,]    2    1
[3,]    1    3
[4,]    3    1
[5,]    2    3
[6,]    3    2

#2つのベクトルの組み合わせ:CombPairsコマンド
CombPairs(c(1:3), c(3:1))
Var1 Var2
1    1    3
2    2    3
3    3    3
4    1    2
5    2    2
6    3    2
7    1    1
8    2    1
9    3    1

###データ例の作成#####
n <- 1000
TestData <- data.frame(Group = sample(c(paste0("Group", 1:3), NA), n, replace = TRUE),
                          Data1 = sample(1:200, n, replace = TRUE),
                          Data2 = rnorm(n),
                          Data3 = factor(sample(c("YES", "NO", NA), n, replace = TRUE)))
########

#因子の分布を確認:Descコマンド
#カテゴリ
Desc(TestData[, 1], plotit = TRUE, digits = 3)

TestData[, 1] (factor)
length      n    NAs levels unique  dupes
1'000    780    220      3      3      y

   level   freq      perc  cumfreq   cumperc
1  Group3  3e+02  3.6e+01%    3e+02  3.6e+01%
2  Group1  2e+02  3.2e+01%    5e+02  6.8e+01%
3  Group2  2e+02  3.2e+01%    8e+02  1.0e+02%

#連続変数
Desc(TestData[, 2], plotit = TRUE)

TestData[, 2] (integer)
length          n        NAs     unique         0s       mean     meanSE
 1e+03      1e+03          0      2e+02          0   1.03e+02   1.80e+00

     .05        .10        .25     median        .75        .90        .95
1.30e+01   2.40e+01   5.30e+01   1.04e+02   1.51e+02   1.79e+02   1.90e+02

   range         sd      vcoef        mad        IQR       skew       kurt
1.99e+02   5.69e+01   5.55e-01   7.26e+01   9.80e+01  -4.49e-02  -1.20e+00

lowest : 1e+00 (4e+00), 2e+00 (5e+00), 3e+00 (7e+00), 4e+00 (2e+00), 5e+00 (2e+00)
highest: 2e+02 (7e+00), 2e+02 (3e+00), 2e+02 (8e+00), 2e+02 (6e+00), 2e+02 (4e+00)

#因子
Desc(TestData[, 4], plotit = TRUE)

TestData[, 4] (factor - dichotomous)
length      n    NAs unique
 1'000    661    339      2

freq      perc  lci9.50e-01  uci9.50e-01'
NO   3e+02  5.3e+01%     4.9e+01%     5.7e+01%
YES  3e+02  4.7e+01%     4.3e+01%     5.1e+01%

' 95%-CI Wilson

#データを箱ひげ図で確認
Desc(TestData[, 1] ~ TestData[, 2], plotit = TRUE)

#バイオリンプロット:PlotViolinコマンド
PlotViolin(TestData[, 2] ~ TestData[, 1],
           data = TestData, col = SetAlpha(hblue,0.5))

#密度グラフの作成:PlotMultiDensコマンド
PlotMultiDens(TestData[, 2] ~ TestData[, 1],
              data = TestData) 

#散布図と密度グラフの同時描写:PlotMarDensコマンド
#グループを指定:grpオプション
PlotMarDens(y = TestData[, 2], x = TestData[, 3], grp = TestData[, 1])

出力例

Descコマンドによる出力です。
・カテゴリ

Desc1

・連続変数

Desc2

・因子

Desc3

・データを箱ひげ図で確認

Desc4

・PlotViolinコマンド

PlotVioli

・PlotMultiDensコマンド

PlotMultiDens

・PlotMarDensコマンド

PlotMarDens

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

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