Как удалить строки в R (с примерами)


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

#remove 4th row
new_df <- df[-c(4), ]

#remove 2nd through 4th row
new_df <- df[-c(2:4), ]

#remove 1st, 2nd, and 4th row
new_df <- df[-c(1, 2, 4), ]

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

#only keep rows where col1 value is less than 10 and col2 value is less than 6
new_df <- subset(df, col1 < 10 & col2 < 6)

И вы можете использовать следующий синтаксис для удаления строк со значением NA в любом столбце:

#remove rows with NA value in any column
new_df <- na.omit(df)

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

Пример 1: удаление строк по номеру

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

#create data frame
df <- data.frame(player=c('A', 'B', 'C', 'D', 'E'),
 pts=c(17, 12, 8, 9, 25),
 rebs=c(3, 3, 6, 5, 8),
 blocks=c(1, 1, 2, 4, NA))

#view data frame
df

 player pts rebs blocks
1 A 17 3 1
2 B 12 3 1
3 C 8 6 2
4 D 9 5 4
5 E 25 8 NA

#remove 4th row
df[-c(4), ]

 player pts rebs blocks
1 A 17 3 1
2 B 12 3 1
3 C 8 6 2
5 E 25 8 NA

#remove 2nd through 4th row
df[-c(2:4), ]

 player pts rebs blocks
1 A 17 3 1
5 E 25 8 NA

#remove 1st, 2nd, and 4th row
df[-c(1, 2, 4), ]

 player pts rebs blocks
3 C 8 6 2
5 E 25 8 NA

Пример 2. Удаление строк по условию

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

#create data frame
df <- data.frame(player=c('A', 'B', 'C', 'D', 'E'),
 pts=c(17, 12, 8, 9, 25),
 rebs=c(3, 3, 6, 5, 8),
 blocks=c(1, 1, 2, 4, NA))

#view data frame
df

 player pts rebs blocks
1 A 17 3 1
2 B 12 3 1
3 C 8 6 2
4 D 9 5 4
5 E 25 8 NA

#only keep rows where pts is less than 10 and rebs is less than 6
subset(df, pts < 10 & rebs < 6)

 player pts rebs blocks
4 D 9 5 4

Пример 3. Удаление строк со значениями NA

В следующем коде показано, как удалить строки со значением NA в любой строке:

#create data frame
df <- data.frame(player=c('A', 'B', 'C', 'D', 'E'),
 pts=c(17, 12, 8, 9, 25),
 rebs=c(3, 3, 6, 5, 8),
 blocks=c(1, 1, 2, 4, NA))

#view data frame
df

 player pts rebs blocks
1 A 17 3 1
2 B 12 3 1
3 C 8 6 2
4 D 9 5 4
5 E 25 8 NA

#remove rows with NA value in any row:
na.omit(df)

 player pts rebs blocks
1 A 17 3 1
2 B 12 3 1
3 C 8 6 2
4 D 9 5 4

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

Как добавить строки во фрейм данных в R
Как удалить повторяющиеся строки в R
Как суммировать определенные строки в R

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