Rで解析:データを条件で確認「validate」パッケージ

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

データを指定した条件で抽出し特徴を表示するパッケージの紹介です。多くのコマンドを記述することなく確認することが出来て大変便利です。

パッケージバージョンは1.1.1。R version 4.2.2で動作を確認しています。

スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
n <- 500
TestData <- data.frame("Group" = sample(paste0("Group", 1:5), n, replace = TRUE),
                       "LETTERS" = sample(LETTERS[1:24], n, replace = TRUE),
                       "letters" = sample(letters[1:24], n, replace = TRUE),
                       "numeric" = sample(seq(n), n, replace = FALSE),
                       "Data" = rnorm(n))
#内容確認
summary(TestData)
Group        LETTERS       letters       numeric           Data         
Group1:103   P      : 33   c      : 27   Min.   :  1.0   Min.   :-2.83327  
Group2:100   R      : 33   d      : 27   1st Qu.:125.8   1st Qu.:-0.70251  
Group3:100   B      : 27   f      : 27   Median :250.5   Median :-0.07343  
Group4: 95   H      : 24   p      : 24   Mean   :250.5   Mean   :-0.02675  
Group5:102   I      : 24   u      : 24   3rd Qu.:375.2   3rd Qu.: 0.62940  
S      : 24   k      : 23   Max.   :500.0   Max.   : 3.31558  
(Other):335   (Other):348     
########

#条件に合うデータを確認:check_thatコマンド
#データを指定:datオプション
#条件はdatオプション以降にカンマで区切り記述する
CheckData <- check_that(dat = TestData, LETTERS == "R",
                        numeric >= 300, numeric/Data >= 0.5)
#確認
summary(CheckData)
name items passes fails nNA error warning              expression
1   V1   500     21   479   0 FALSE   FALSE          LETTERS == "R"
2   V2   500    201   299   0 FALSE   FALSE numeric - 300 >= -1e-08
3   V3   500    254   246   0 FALSE   FALSE     numeric/Data >= 0.5

#棒グラフで表示
barplot(CheckData, main = "確認")

###おまけ#####
#元データから条件に合うデータを抽出
#例えばnumeric/Data &gt; 0.5に合うデータ
ExData <- TestData[CheckData$._value$V3,]
#間違いないか確認,全てTRUEであれば良い
#allコマンドを利用
all(ExData[, 4] / ExData[, 5] > 0.5)
[1] TRUE
#######

#条件をオブジェクトに格納する:validatorコマンド
ValiData <- validator(LETTERS == "R",
                      numeric > 300, numeric/Data > 0.5)
#確認
ValiData

Object of class 'validator' with 3 elements:
V1: LETTERS == "R"
V2: numeric > 300
V3: numeric/Data > 0.5

#条件オブジェクトを適応しデータを確認:confrontコマンド
#条件オブジェクトを指定:xオプション
ConData <- confront(dat = TestData, x = ValiData)
#確認
summary(ConData)
name items passes fails nNA error warning         expression
1   V1   500     21   479   0 FALSE   FALSE     LETTERS == "R"
2   V2   500    200   300   0 FALSE   FALSE      numeric > 300
3   V3   500    254   246   0 FALSE   FALSE numeric/Data > 0.5

出力例

・棒グラフで表示


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

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