Существует пять распространенных способов извлечения строк из фрейма данных в R:
Метод 1: извлечь одну строку по позиции
#extract row 2
df[2, ]
Способ 2: извлечь несколько строк по положению
#extract rows 2, 4, and 5
df[c(2, 4, 5), ]
Способ 3: извлечение диапазона строк
#extract rows in range of 1 to 3
df[1:3, ]
Способ 4: извлечение строк на основе одного условия
#extract rows where value in column1 is greater than 10
df[df$column1 > 10 , ]
Метод 5: извлечение строк на основе нескольких условий
#extract rows where column1 > 10 *and* column2 > 5
df[df$column1 > 10 & df$column2 > 5 , ]
#extract rows where column1 > 10 *or* column2 > 5
df[df$column1 > 10 | df$column2 > 5 , ]
В следующих примерах показано, как использовать каждый метод со следующим фреймом данных:
#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#view data frame
df
team points assists rebounds
1 A 99 33 30
2 B 90 28 28
3 C 86 31 24
4 D 88 39 24
5 E 95 34 28
Пример 1. Извлечение одной строки по позиции
Следующий код показывает, как извлечь только строку 2 из фрейма данных:
#extract row 2
df[2, ]
team points assists rebounds
2 B 90 28 28
Пример 2. Извлечение нескольких строк по положению
В следующем коде показано, как извлечь строки 2, 4 и 5 из фрейма данных:
#extract rows 2, 4, and 5
df[c(2, 4, 5), ]
team points assists rebounds
2 B 90 28 28
4 D 88 39 24
5 E 95 34 28
Пример 3: Извлечение диапазона строк
Следующий код показывает, как извлечь строки в диапазоне от 1 до 3:
#extract rows in range of 1 to 3
df[1:3, ]
team points assists rebounds
1 A 99 33 30
2 B 90 28 28
3 C 86 31 24
Пример 4. Извлечение строк на основе одного условия
В следующем коде показано, как извлечь строки, в которых значение в столбце точек больше 90:
#extract rows where value in points column is greater than 90
df[df$points > 90 , ]
team points assists rebounds
1 A 99 33 30
5 E 95 34 28
Пример 5: Извлечение строк на основе нескольких условий
В следующем коде показано, как извлечь строки, в которых значение в столбце точек больше 90:
#extract rows where points is greater than 90 *and* assists is greater than 33
df[df$points > 90 & df$assists > 33 , ]
team points assists rebounds
5 E 95 34 28
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как удалить повторяющиеся строки в R
Как удалить несколько строк в R
Как подсчитать количество строк в R