Rで解析:データ検証!このパッケージ、試してみてください「validate」パッケージ


これまで、データ検証に関するパッケージを紹介してきました。バージョンが0.1.2と開発の初期ではありますが、非常に有用なパッケージかと思います。タイトル、決して煽っているわけではありません。ジワジワと「これは使える!」と思えるパッケージです。

パッケージの特徴は、ただデータを要約するのではなく「データの検証条件を指定でき、その条件を簡単に再利用できる」ことにあるかと思います。

繰り返し、頻度が多い、ちょっと条件が違う環境、での検証が多いウェブ解析などに便利なパッケージです。特に第3者へのレポート作成に有用かと思います。

パッケージのバージョンは0.1.2。R version 3.2.2でコマンドを確認しています。


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

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

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

実行コマンド

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

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

###データ例の作成#####
n <- 300
set.seed(1234)
SampleData <- data.frame(Group = sample(c("Group1", "Group2"), n, replace = TRUE),
                         Data1 = round(runif(n, 45.5, 80.5), 2),
                         Data2 = round(runif(n, 145, 180), 1))
########

#データの確認
summary(SampleData)
Group         Data1           Data2      
Group1:151   Min.   :45.52   Min.   :145.0  
Group2:149   1st Qu.:55.78   1st Qu.:153.9  
             Median :65.56   Median :162.8  
             Mean   :64.31   Mean   :162.5  
             3rd Qu.:72.67   3rd Qu.:171.8  
             Max.   :80.46   Max.   :179.6

#簡単なデータの検証コマンド:check_thatコマンド
#複雑な検証はvalidator,confrontコマンドの組み合わせがオススメです
#データ指定:datオプション
#検証条件は基本演算子で指定します
#検証条件はカンマ","で区切ります
CheckData <- check_that(dat = SampleData,
                        Data1 > 50, Data2 > 160, Data2/Data1 > 2.5)
#要約
summary(CheckData)
  rule items passes fails nNA error warning        expression
1   V1   300    269    31   0 FALSE   FALSE        Data1 > 50
2   V2   300    171   129   0 FALSE   FALSE       Data2 > 160
3   V3   300    152   148   0 FALSE   FALSE Data2/Data1 > 2.5

#要約をbarplotで表示:barplotコマンド
barplot(CheckData, main = "CheckData")

#検証条件を作成:validatorコマンド
#条件内で変数を指定:[:=]を使用します
#複雑な条件を何度も指定する場合に便利です
ValiRule <- validator(Meth = fold := 2.5 / 1,
                      Data1 = Data1 > 50, Data2 = Data2 > 160,
                      Data3 = Data2/Data1 > fold,
                      Data4 = Data1/Data2 > fold)
ValiRule
Object of class 'validator' with 5 elements:
Meth : `:=`(fold, 2.5/1)
Data1: Data1 > 50
Data2: Data2 > 160
Data3: Data2/Data1 > fold
Data4: Data1/Data2 > fold

#validatorの出力は操作ができます
#ラベルの変更
names(ValiRule)[1] <- "Rule"
ValiRule
Object of class 'validator' with 5 elements:
Rule : `:=`(fold, 2.5/1)
Data1: Data1 > 50
Data2: Data2 > 160
Data3: Data2/Data1 > fold
Data4: Data1/Data2 > fold
#検証条件数の取得
length(ValiRule)
[1] 5
#検証条件の適応状況を確認
variables(ValiRule, as = "matrix")
rule  Data1 Data2
Data1  TRUE FALSE
Data2 FALSE  TRUE
Data3  TRUE  TRUE
Data4  TRUE  TRUE


#検証条件をデータに適応:confrontコマンド
#結果はvalidationクラスになります
#データが異なっても適応が簡単です
VariCon <- confront(SampleData, ValiRule)
summary(VariCon)
   rule items passes fails nNA error warning            expression
1 Data1   300    269    31   0 FALSE   FALSE            Data1 > 50
2 Data2   300    171   129   0 FALSE   FALSE           Data2 > 160
3 Data3   300    152   148   0 FALSE   FALSE Data2/Data1 > (2.5/1)
4 Data4   300      0   300   0 FALSE   FALSE Data1/Data2 > (2.5/1)

#confrontの結果はsummary,aggregate,
#sort,values,errors,waringsコマンドが適応できます
#errors,waringsは省略
#aggregateコマンドで出力
aggregate(VariCon)
      npass nfail nNA  rel.pass  rel.fail rel.NA
Data1   269    31   0 0.8966667 0.1033333      0
Data2   171   129   0 0.5700000 0.4300000      0
Data3   152   148   0 0.5066667 0.4933333      0
Data4     0   300   0 0.0000000 1.0000000      0
#sortコマンドで出力
sort(VariCon)
      npass nfail nNA  rel.pass  rel.fail rel.NA
Data4     0   300   0 0.0000000 1.0000000      0
Data3   152   148   0 0.5066667 0.4933333      0
Data2   171   129   0 0.5700000 0.4300000      0
Data1   269    31   0 0.8966667 0.1033333      0
#valuesコマンドで出力
head(values(VariCon))
     Data1 Data2 Data3 Data4
[1,]  TRUE FALSE  TRUE FALSE
[2,]  TRUE FALSE FALSE FALSE
[3,]  TRUE FALSE FALSE FALSE
[4,]  TRUE  TRUE  TRUE FALSE
[5,]  TRUE FALSE FALSE FALSE
[6,]  TRUE FALSE  TRUE FALSE

出力例

・barplotコマンド
CheckData


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク