Вы можете использовать следующий синтаксис для удаления определенных номеров строк в 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