Как заменить значения во фрейме данных в r (с примерами)
Вы можете использовать следующий синтаксис, чтобы заменить определенное значение во фрейме данных в R новым значением:
df[df == ' Old Value '] <- ' New value '
Вы можете использовать следующий синтаксис, чтобы заменить одно из многих значений во фрейме данных новым значением:
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. Замена одного из нескольких значений во всем фрейме данных
Следующий код показывает, как заменить одно из нескольких значений новым значением во всем фрейме данных:
#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
Дополнительные ресурсы
Как заменить NA строками в R
Как все вменить пропущенные значения в R