【R】datawizard

1. はじめに

datawizardは、データの処理、クリーニング、変型等を簡単に行ってくれるパッケージです。tidyverseの簡易版のような感じでしょうか。

2. インストール

CRANからインストールできます。

install.packages("datawizard")

3. つかってみる

まずは、フィルタリング。

library(datawizard)

matching_rows <- data_match(mtcars, data.frame(cyl = 4, gear = 4))
mtcars[matching_rows, ]
                mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

確かにお手軽ですね。

外れ値の処理です。

winsorize(anscombe)
> winsorize(anscombe)
      x1 x2 x3 x4   y1   y2   y3   y4
 [1,] 10 10 10  8 8.04 9.13 7.46 6.58
 [2,]  8  8  8  8 6.95 8.14 6.77 5.76
 [3,] 12 12 12  8 7.58 8.74 8.15 7.71
 [4,]  9  9  9  8 8.81 8.77 7.11 8.47
 [5,] 11 11 11  8 8.33 9.13 7.81 8.47
 [6,] 12 12 12  8 8.81 8.10 8.15 7.04
 [7,]  6  6  6  8 7.24 6.13 6.08 5.76
 [8,]  6  6  6  8 5.68 6.13 6.08 8.47
 [9,] 12 12 12  8 8.81 9.13 8.15 5.76
[10,]  7  7  7  8 5.68 7.26 6.42 7.91
[11,]  6  6  6  8 5.68 6.13 6.08 6.89

Reshapeもできます。WideなデータをLongに変更します。

wide_data <- data.frame(replicate(5, rnorm(10)))
           X1         X2          X3          X4         X5
1   0.8989335  0.7876378  1.83986064 -0.31808121 -1.0707843
2   0.7130050  0.6279114 -0.14377266  0.28358610  0.1217523
3   1.6243979  1.1752866  0.48438050 -0.55977177  0.9103065
4  -0.1903934 -1.7954762  1.52558310  0.10336741  1.1136218
5   0.7598743 -0.1191321  0.42590315 -0.43730022 -0.7944927
6  -1.6448969  0.4423005  0.96344142 -0.08729114  0.1666696
7  -0.4394345  0.6947211  0.24501367 -1.11960598  0.3567817
8   0.7171853  1.0387063 -0.80469703 -0.90108982  0.1820921
9  -1.2429354  0.8920764 -0.55494769  0.59727675  2.0410205
10  1.1468064 -0.5663328 -0.07387813  0.78933631  1.4476702
data_to_long(wide_data)
   Name       Value
1    X1  0.89893351
2    X2  0.78763780
3    X3  1.83986064
4    X4 -0.31808121
5    X5 -1.07078428
6    X1  0.71300504
7    X2  0.62791139
8    X3 -0.14377266
9    X4  0.28358610
10   X5  0.12175234
11   X1  1.62439792
12   X2  1.17528664
13   X3  0.48438050
14   X4 -0.55977177
15   X5  0.91030652
16   X1 -0.19039340
17   X2 -1.79547619
18   X3  1.52558310
19   X4  0.10336741
20   X5  1.11362179
21   X1  0.75987429
22   X2 -0.11913210
23   X3  0.42590315
24   X4 -0.43730022
25   X5 -0.79449270
26   X1 -1.64489691
27   X2  0.44230054
28   X3  0.96344142
29   X4 -0.08729114
30   X5  0.16666965
31   X1 -0.43943448
32   X2  0.69472105
33   X3  0.24501367
34   X4 -1.11960598
35   X5  0.35678173
36   X1  0.71718534
37   X2  1.03870631
38   X3 -0.80469703
39   X4 -0.90108982
40   X5  0.18209206
41   X1 -1.24293543
42   X2  0.89207643
43   X3 -0.55494769
44   X4  0.59727675
45   X5  2.04102048
46   X1  1.14680641
47   X2 -0.56633278
48   X3 -0.07387813
49   X4  0.78933631
50   X5  1.44767015

データのプロパティも見ることができます。

describe_distribution(swiss)
Variable         | Mean |   SD |  IQR |  Min | Max | Skewness | Kurtosis |  n | n_Missing
-----------------------------------------------------------------------------------------
Fertility        |   70 | 12.5 | 14.9 | 35.0 |  92 |    -0.49 |     0.59 | 47 |         0
Agriculture      |   51 | 22.7 | 32.5 |  1.2 |  90 |    -0.34 |    -0.74 | 47 |         0
Examination      |   16 |  8.0 | 10.0 |  3.0 |  37 |     0.48 |     0.13 | 47 |         0
Education        |   11 |  9.6 |  6.0 |  1.0 |  53 |     2.42 |     7.43 | 47 |         0
Catholic         |   41 | 41.7 | 88.2 |  2.1 | 100 |     0.51 |    -1.65 | 47 |         0
Infant.Mortality |   20 |  2.9 |  4.1 | 10.8 |  27 |    -0.35 |     1.19 | 47 |         0

4. さいごに

いろいろ機能が満載です。手軽にデータ処理ができますね。これは、easystatのグループの一つのパッケージのようです。

Add a Comment

メールアドレスが公開されることはありません。