Как заменить значения во фрейме данных в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *