値を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
少しでも、あなたの解析が楽になりますように!!