Вы можете использовать следующий синтаксис, чтобы заменить определенное значение во фрейме данных в 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
a b c d
1 1 A 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
a b c d
1 1 A 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
a b c d
1 1 A 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
a b c d
1 1 A 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
a b c d
1 1 A 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
a b c d
1 1 A 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
a b c d
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
a b c d
1 24 A 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11
Дополнительные ресурсы
Как заменить NA строками в R
Как заменить пропущенные значения в R