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: Как добавить столбец во фрейм данных на основе других столбцов