Rでデータフレームの値を置換する方法(例付き)
次の構文を使用して、R のデータ フレーム内の特定の値を新しい値に置き換えることができます。
df[df == ' Old Value '] <- ' New value '
次の構文を使用して、データ フレーム内の多くの値の 1 つを新しい値に置き換えることができます。
df[df == ' Old Value 1 ' | df == ' Old Value 2 '] <- ' New value '
また、次の構文を使用して、データ フレームの特定の列の特定の値を新しい値に置き換えることができます。
df['column1'][df['column1'] == ' Old Value '] <- ' New value '
次の例は、この構文を実際に使用する方法を示しています。
例 1: データ フレーム全体の特定の値を置換する
次のコードは、データ フレーム全体にわたって特定の値を新しい値に置き換える方法を示しています。
#create data frame df <- data. frame (a = as. factor (c(1, 5, 7, 8)), b = c('A', 'B', 'C', 'D'), c = c(14, 14, 19, 22), d = c(3, 7, 14, 11)) #view data frame df abcd 1 1 To 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11 #replace '14' with '24' across entire data frame df[df == 14] <- 24 #view updated data frame df abcd 1 1 To 24 3 2 5 B 24 7 3 7 C 19 24 4 8 D 22 11
例 2: データ フレーム全体の複数の値の 1 つを置き換えます
次のコードは、データ フレーム全体で複数の値の 1 つを新しい値に置き換える方法を示しています。
#create data frame df <- data. frame (a = as. factor (c(1, 5, 7, 8)), b = c('A', 'B', 'C', 'D'), c = c(14, 14, 19, 22), d = c(3, 7, 14, 11)) #view data frame df abcd 1 1 To 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11 #replace '14' and '19' with '24' across entire data frame df[df == 14 | df == 19] <- 24 #view updated data frame df abcd 1 1 To 24 3 2 5 B 24 7 3 7 C 24 24 4 8 D 22 11
例 3: データ フレームの特定の列の値を置き換えます。
次のコードは、データ フレームの特定の列内の特定の値を新しい値に置き換える方法を示しています。
#create data frame df <- data. frame (a = as. factor (c(1, 5, 7, 8)), b = c('A', 'B', 'C', 'D'), c = c(14, 14, 19, 22), d = c(3, 7, 14, 11)) #view data frame df abcd 1 1 To 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11 #replace '14' in column c with '24' df['c'][df['c'] == 14] <- 24 #view updated data frame df abcd 1 1 To 24 3 2 5 B 24 7 3 7 C 19 14 4 8 D 22 11
例 4: データ フレーム内の因子変数の値を置き換える
因子変数の特定の値をオーバーライドしようとすると、次の警告メッセージが表示されます。
#create data frame df <- data. frame (a = as. factor (c(1, 5, 7, 8)), b = c('A', 'B', 'C', 'D'), c = c(14, 14, 19, 22), d = c(3, 7, 14, 11)) #attempt to replace '1' with '24' in column a df['a'][df['a'] == 1] <- 24 Warning message: In `[<-.factor`(`*tmp*`, thisvar, value = 24): invalid factor level, NA generated abcd 1 <NA> A 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11
この警告を回避するには、まず因子変数を数値変数に変換する必要があります。
#convert column a to numeric df$a <- as. numeric (as. character (df$a)) #replace '1' with '24' in column a df['a'][df['a'] == 1] <- 24 #view updated data frame df abcd 1 24 A 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11