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