Как подмножество фрейма данных по списку значений в r


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

Метод 1: используйте базу R

 df_new <- df[df$my_column %in% vals,]

Способ 2: используйте dplyr

 library (dplyr)

df_new <- filter(df, my_column %in% vals)

Способ 3: использовать data.table

 library (data.table)

df_new <- setDT(df, key=' my_column ')[J(vals)]

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

 #create data frame
df <- data. frame (team=c('A', 'B', 'B', 'B', 'C', 'C', 'C', 'D'),
                 points=c(12, 22, 35, 34, 20, 28, 30, 18),
                 assists=c(4, 10, 11, 12, 12, 8, 6, 10))

#view data frame
df

  team points assists
1 to 12 4
2 B 22 10
3 B 35 11
4 B 34 12
5 C 20 12
6 C 28 8
7 C 30 6
8 D 18 10

Способ 1: подмножество фрейма данных по списку значений в базе R

Следующий код показывает, как подмножество фрейма данных, чтобы он содержал только строки со значением «A» или «C» в столбце команды :

 #define values to subset by
vals <- c(' A ', ' C ')

#subset data frame to only contain rows where team is 'A' or 'C'
df_new <- df[df$team %in% vals,]

#view results
df_new

  team points assists
1 to 12 4
5 C 20 12
6 C 28 8
7 C 30 6

Результирующий фрейм данных содержит только строки со значением «A» или «C» в столбце «Команда ».

Обратите внимание, что в этом примере мы использовали базовые функции R, поэтому нам не пришлось загружать какие-либо дополнительные пакеты.

Способ 2: подмножество Dataframe по списку значений в dplyr

В следующем коде показано, как подмножество фрейма данных содержать только строки со значением «A» или «C» в столбце команды с помощью функции filter() из пакета dplyr :

 library (dplyr)

#define values to subset by
vals <- c(' A ', ' C ')

#subset data frame to only contain rows where team is 'A' or 'C'
df_new <- filter(df, team %in% vals)

#view results
df_new

  team points assists
1 to 12 4
5 C 20 12
6 C 28 8
7 C 30 6

Результирующий фрейм данных содержит только строки со значением «A» или «C» в столбце «Команда ».

Способ 3: подустановить фрейм данных по списку значений в data.table

В следующем коде показано, как подмножество фрейма данных содержать только строки со значением «A» или «C» в столбце команды с помощью функций пакета data.table :

 library (data.table)

#define values to subset by
vals <- c(' A ', ' C ')

#subset data frame to only contain rows where team is 'A' or 'C'
df_new <- setDT(df, key=' team ')[J(vals)]

#view results
df_new

   team points assists
1: A 12 4
2: C 20 12
3: C 28 8
4: C 30 6

Результирующий фрейм данных содержит только строки со значением «A» или «C» в столбце «Команда ».

Связано: Как использовать оператор %in% в R (с примерами)

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

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

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

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

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