データを指定した条件で抽出し特徴を表示するパッケージの紹介です。多くのコマンドを記述することなく確認することが出来て大変便利です。
パッケージバージョンは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 > 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
出力例
・棒グラフで表示

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