Dplyr で coalesce() 関数を使用する方法 (例付き)
R のdplyrパッケージのcoalesce()関数を使用して、1 つ以上のベクトルの各位置の最初の非欠損値を返すことができます。
この関数を使用するには、次の 2 つの一般的な方法があります。
方法 1: ベクトル内の欠損値を置換する
library (dplyr)
#replace missing values with 100
coalescence(x, 100)
方法 2: データ フレーム列の最初の非欠損値を返す
library (dplyr)
#return first non-missing value at each position across columns A and B
coalesce(df$A, df$B)
次の例は、各方法を実際に適用する方法を示しています。
例 1: coalesce() を使用してベクトル内の欠損値を置き換えます
次のコードは、 coalesce()関数を使用して、ベクトル内のすべての欠落値を値 100 に置き換える方法を示しています。
library (dplyr) #create vector of values x <- c(4, NA, 12, NA, 5, 14, 19) #replace missing values with 100 coalescence(x, 100) [1] 4 100 12 100 5 14 19
元のベクトルの各NA値が100の値に置き換えられていることに注意してください。
例 2: coalesce() を使用して、データ フレーム列の最初の非欠損値を返します。
R に次のデータ フレームがあるとします。
#create data frame
df <- data. frame (A=c(10, NA, 5, 6, NA, 7, NA),
B=c(14, 9, NA, 3, NA, 10, 4))
#view data frame
df
AB
1 10 14
2 NA 9
3 5 NA
4 6 3
5 NA NA
6 7 10
7 NA 4
次のコードは、 coalesce()関数を使用して、データ フレームの列 A と列 B の最初の非欠損値を返す方法を示しています。
library (dplyr)
#create new column that coalesces values from columns A and B
df$C <- coalesce(df$A, df$B)
#view updated data frame
df
ABC
1 10 14 10
2 NA 9 9
3 5 NA 5
4 6 3 6
5 NA NA NA
6 7 10 7
7 NA 4 4
結果の列 C には、列 A と B の最初の非欠損値が含まれます。
列 A と B の両方がこの行に NA 値を持っていたため、行 5 の列 C には NA の値があることに注意してください。
各列に NA 値がある場合、値として使用する追加の値をcoalesce()関数に追加するだけです。
library (dplyr)
#create new column that coalesces values from columns A and B
df$C <- coalesce(df$A, df$B, 100)
#view updated data frame
df
ABC
1 10 14 10
2 NA 9 9
3 5 NA 5
4 6 3 6
5 NA NA 100
6 7 10 7
7 NA 4 4
列 C の行 5 の NA 値が値100に置き換えられていることに注意してください。
追加リソース
次のチュートリアルでは、dplyr を使用して他の一般的な機能を実行する方法について説明します。
dplyrを使用して行を削除する方法
dplyrを使用して行を配置する方法
dplyrを使って複数の条件でフィルタリングする方法