R: Как условно заменить значения во фрейме данных


Вы можете использовать один из следующих методов для условной замены значений во фрейме данных:

Метод 1: заменить значения во всем фрейме данных

#replace all values in data frame equal to 30 with 0
df[df == 30 ] <- 0

Способ 2: заменить значения в определенном столбце

#replace values equal to 30 in 'col1' with 0
df$col1[df$col1 == 30 ] <- 0

Способ 3: заменить значения в определенном столбце на основе другого столбца

#replace values in col2 with 0 based on rows in col1 equal to 30
df$col2[df$col1 == 30 ] <- 0

В следующих примерах показано, как использовать каждый метод на практике со следующим фреймом данных:

#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'B'),
 points=c(99, 90, 90, 88, 88),
 assists=c(33, 28, 31, 30, 34),
 rebounds=c(30, 30, 24, 24, 28))

#view data frame
df

 team points assists rebounds
1 A 99 33 30
2 A 90 28 30
3 B 90 31 24
4 B 88 30 24
5 B 88 34 28

Метод 1: заменить значения во всем фрейме данных

В следующем коде показано, как заменить все значения, равные 30, во фрейме данных на 0:

#replace all values in data frame equal to 30 with 0
df[df == 30 ] <- 0

#view updated data frame
df
 team points assists rebounds
1 A 99 33 0
2 A 90 28 0
3 B 90 31 24
4 B 88 0 24
5 B 88 34 28

Способ 2: заменить значения в определенном столбце

В следующем коде показано, как заменить все значения, равные 90, в столбце «точки» на 0:

#replace all values equal to 90 in 'points' column with 0
df$points[df$points == 90 ] <- 0

#view updated data frame
df

 team points assists rebounds
1 A 99 33 30
2 A 0 28 30
3 B 0 31 24
4 B 88 30 24
5 B 88 34 28

Способ 3: заменить значения в определенном столбце на основе другого столбца

В следующем коде показано, как заменить значения в столбце «очки» на 0, где значение в столбце «команда» равно «B».

#replace all values equal to 90 in 'points' column with 0
df$points[df$team == 'B'] <- 0

#view updated data frame
df

 team points assists rebounds
1 A 99 33 30
2 A 90 28 30
3 B 0 31 24
4 B 0 30 24
5 B 0 34 28

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

R: Как объединить фреймы данных на основе нескольких столбцов
R: Как добавить столбец во фрейм данных на основе других столбцов

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.