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