Rで解析:値をNAに置換するのに便利です「fauxnaif」パッケージ

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

値をNAに置換するのに便利なパッケージの紹介です。置換条件の設定が簡単です。パッケージには置換条件が適合と非適合の2つのコマンドが収録されています。

パッケージバージョンは0.7.0。windows 11のR version 4.1.3で確認しています。

スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 50
TestData <- tibble(Group = factor(sample(paste0("Group", 1:4), n,
                                         replace = TRUE)),
                   X_Data = sample(c(1:50), n, replace = TRUE),
                   Y_Data = sample(c(51:100), n, replace = TRUE))
########

#指定した基準値をNAに置換:na_if_inコマンド
#対象データを指定:xオプション
na_if_in(x = TestData$Group, "Group4", "Group1")
#[1] <NA>   <NA>   Group2 Group2 <NA>   <NA>   Group3 <NA>   <NA>   Group2 <NA>   <NA>  
#[13] Group2 Group3 Group2 Group2 Group2 Group3 Group2 <NA>   Group2 Group2 <NA>   Group2
#[25] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   Group3 <NA>   Group3 Group3 <NA>   Group2
#[37] <NA>   Group2 Group2 Group3 <NA>   Group3 <NA>   <NA>   <NA>   Group3 Group3 <NA>  
#[49] Group3 Group2
#Levels: Group1 Group2 Group3 Group4

#指定した基準値外をNAに置換:na_if_notコマンド
na_if_not(x = TestData$Group, "Group4", "Group1")
#[1] Group4 Group4 <NA>   <NA>   Group1 Group4 <NA>   Group1 Group1 <NA>   Group4 Group4
#[13] <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   <NA>   Group4 <NA>   <NA>   Group4 <NA>  
#[25] Group4 Group4 Group1 Group4 Group4 Group4 <NA>   Group4 <NA>   <NA>   Group1 <NA>  
#[37] Group1 <NA>   <NA>   <NA>   Group4 <NA>   Group4 Group4 Group4 <NA>   <NA>   Group1
#[49] <NA>   <NA>    
#Levels: Group1 Group2 Group3 Group4

###使用例#####
TestData %>%
  mutate(Group_NA = na_if_in(x = Group, "Group4", "Group1"),
         X_Data_NOT_NA = na_if_not(x = X_Data,
                                   #betweenの前に「~(チルダ)」を付ける
                                   ~dplyr::between(., 25, 40)))
# A tibble: 50 x 5
#   Group  X_Data Y_Data Group_NA X_Data_NOT_NA
#   <fct>   <int>  <int> <fct>            <int>
# 1 Group4     36     69 NA                  36
# 2 Group4      8     59 NA                  NA
# 3 Group2     32     80 Group2              32
# 4 Group2     42     67 Group2              NA
# 5 Group1     43     88 NA                  NA
# 6 Group4      2     72 NA                  NA
# 7 Group3     15     56 Group3              NA
# 8 Group1     49     71 NA                  NA
# 9 Group1     38     71 NA                  38
#10 Group2      6     82 Group2              NA
# ... with 40 more rows

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

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