言語 - データ検証パッケージ "validate"
はじめに
validate パッケージ を使うと、データ検証作業の効率を向上させることができます。たとえば、指定したルールに従って、ルールに合格したか、評価に失敗したか、などを検証できます。
データの構造をチェックする
▼サンプルスクリプト
# 環境情報
# R version 3.2.5 (2016-04-14) -- Very, Very Secure Dishes
# パッケージのインストール
install.packages( "magrittr" )
install.packages( "validate" )
install.packages( "yaml" )
# ライブラリの読み込み
library( magrittr )
library( validate )
library( yaml )
# データの構造をチェックする
iris %>% check_that(
Sepal.Width > 0.5 * Sepal.Length # V1
, mean( Sepal.Width ) > 0 # V2
, sd( Sepal.Width ) < 0 # V3
, if ( Sepal.Width > 0.5*Sepal.Length ) Sepal.Length > 10 # V4
) %>% summary()
上記のサンプルスクリプトでは、summary() によって、check_that()の実行結果を表示しています。たとえば、ルール名「V2」では、Sepal.Width列全体の平均値が0よりい大きいことを検証しています。passes = "1",fails = "0" であることから、ルールに合格している事が分かります。
▼実行結果例
# check_thatの実行結果
rule items passes fails nNA error warning expression
1 V1 150 66 84 0 FALSE FALSE Sepal.Width > 0.5 * Sepal.Length
2 V2 1 1 0 0 FALSE FALSE mean(Sepal.Width) > 0
3 V3 1 0 1 0 FALSE FALSE sd(Sepal.Width) < 0
4 V4 150 84 66 0 FALSE FALSE !(Sepal.Width > 0.5 * Sepal.Length) | Sepal.Length > 10
データ検証ルールの定義
validator()は、オブジェクトに対するデータ検証ルールを定義できます。定義したオブジェクトは、バリデータオブジェクトと呼ばれ、データ検証ルールとして再利用できます。
▼サンプルスクリプト
v <- validator(
ratio = Sepal.Width > 0.5 * Sepal.Length
, mean = mean( Sepal.Width ) > 0
, sd = sd( Sepal.Width ) < 0
, cnd = if ( Sepal.Width > 0.5*Sepal.Length ) Sepal.Length > 10
)
▼実行結果例
v
# v(バリデータオブジェクト)の中身の確認
Object of class 'validator' with 4 elements:
ratio: Sepal.Width > 0.5 * Sepal.Length
mean : mean(Sepal.Width) > 0
sd : sd(Sepal.Width) < 0
cnd : !(Sepal.Width > 0.5 * Sepal.Length) | Sepal.Length > 10
次のサンプルスクリプトでは、このバリデータオブジェクトを使ってirisデータセットをconfront()で検証しています。
▼サンプルスクリプト
cf <- confront(iris, v)
▼実行結果例
cf
# cf(検証結果)の中身の確認
Object of class 'validation'
Call:
confront(x = iris, dat = v)
Confrontations: 4
With fails : 3
Warnings : 0
Errors : 0
# cf(検証結果)を棒グラフにして可視化します。
barplot( cf, main="iris" )
リファレンス
https://cran.r-project.org/web/packages/validate/vignettes/intro.html
https://cran.r-project.org/web/packages/validate/vignettes/rule-files.html
Author And Source
この問題について(言語 - データ検証パッケージ "validate"), 我々は、より多くの情報をここで見つけました https://qiita.com/uchim/items/f86c311c7bfd893c0a60著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .