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))
#&#20869;&#23481;&#30906;&#35469;
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     
########

#&#26465;&#20214;&#12395;&#21512;&#12358;&#12487;&#12540;&#12479;&#12434;&#30906;&#35469;:check_that&#12467;&#12510;&#12531;&#12489;
#&#12487;&#12540;&#12479;&#12434;&#25351;&#23450;:dat&#12458;&#12503;&#12471;&#12519;&#12531;
#&#26465;&#20214;&#12399;dat&#12458;&#12503;&#12471;&#12519;&#12531;&#20197;&#38477;&#12395;&#12459;&#12531;&#12510;&#12391;&#21306;&#20999;&#12426;&#35352;&#36848;&#12377;&#12427;
CheckData <- check_that(dat = TestData, LETTERS == "R",
                        numeric >= 300, numeric/Data >= 0.5)
#&#30906;&#35469;
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

#&#26834;&#12464;&#12521;&#12501;&#12391;&#34920;&#31034;
barplot(CheckData, main = "&#30906;&#35469;")

###&#12362;&#12414;&#12369;#####
#&#20803;&#12487;&#12540;&#12479;&#12363;&#12425;&#26465;&#20214;&#12395;&#21512;&#12358;&#12487;&#12540;&#12479;&#12434;&#25277;&#20986;
#&#20363;&#12360;&#12400;numeric/Data &gt; 0.5&#12395;&#21512;&#12358;&#12487;&#12540;&#12479;
ExData <- TestData[CheckData$._value$V3,]
#&#38291;&#36949;&#12356;&#12394;&#12356;&#12363;&#30906;&#35469;,&#20840;&#12390;TRUE&#12391;&#12354;&#12428;&#12400;&#33391;&#12356;
#all&#12467;&#12510;&#12531;&#12489;&#12434;&#21033;&#29992;
all(ExData[, 4] / ExData[, 5] > 0.5)
[1] TRUE
#######

#&#26465;&#20214;&#12434;&#12458;&#12502;&#12472;&#12455;&#12463;&#12488;&#12395;&#26684;&#32013;&#12377;&#12427;:validator&#12467;&#12510;&#12531;&#12489;
ValiData <- validator(LETTERS == "R",
                      numeric > 300, numeric/Data > 0.5)
#&#30906;&#35469;
ValiData

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

#&#26465;&#20214;&#12458;&#12502;&#12472;&#12455;&#12463;&#12488;&#12434;&#36969;&#24540;&#12375;&#12487;&#12540;&#12479;&#12434;&#30906;&#35469;:confront&#12467;&#12510;&#12531;&#12489;
#&#26465;&#20214;&#12458;&#12502;&#12472;&#12455;&#12463;&#12488;&#12434;&#25351;&#23450;:x&#12458;&#12503;&#12471;&#12519;&#12531;
ConData <- confront(dat = TestData, x = ValiData)
#&#30906;&#35469;
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をコピーしました