Как выбрать строки данных по имени с помощью dplyr


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

 library (dplyr)

#select rows by name
df %>%
  filter(row. names (df) %in% c(' name1 ', ' name2 ', ' name3 '))

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

Пример: выберите строки по имени с помощью dplyr

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

 #create data frame
df <- data. frame (points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#set row names
row. names (df) <- c('Mavs', 'Hawks', 'Cavs', 'Lakers', 'Heat')

#view data frame
df

       points assists rebounds
Mavs 99 33 30
Hawks 90 28 28
Cavs 86 31 24
Lakers 88 39 24
Heat 95 34 28

Мы можем использовать следующий код для выбора строк, имя которых равно Hawks, Cavs или Heat:

 library (dplyr)

#select specific rows by name
df %>%
  filter(row. names (df) %in% c(' Hawks ', ' Cavs ', ' Heat '))

      points assists rebounds
Hawks 90 28 28
Cavs 86 31 24
Heat 95 34 28

Обратите внимание, что dplyr возвращает только строки, имена которых находятся в векторе, который мы предоставили функции filter() .

Также обратите внимание, что вы можете использовать восклицательный знак ( ! ), чтобы выбрать все строки, имена которых не входят в вектор:

 library (dplyr)

#select rows that do not have Hawks, Cavs, or Heat in the row name
df %>%
  filter(!(row. names (df) %in% c(' Hawks ', ' Cavs ', ' Heat ')))

       points assists rebounds
Mavs 99 33 30
Lakers 88 39 24

Обратите внимание, что dplyr возвращает только строки, имена которых не входят в вектор, который мы предоставили функции filter() .

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *