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


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

Метод 1: Подмножество кадров данных с использованием логики «ИЛИ».

 df_sub <- subset(df, team == ' A ' | points < 20 )

В этом конкретном примере фрейм данных будет подмножеством для строк, где столбец команды равен «A» или столбец очков меньше 20.

Метод 2: Подмножество кадров данных с использованием логики «И»

 df_sub <- subset(df, team == ' A ' & points < 20 )

В этом конкретном примере фрейм данных будет подгруппирован для строк, где столбец команды равен «A» , а столбец очков меньше 20.

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

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 position=c('Guard', 'Guard', 'Forward',
                            'Guard', 'Forward', 'Forward'),
                 dots=c(22, 25, 19, 22, 12, 35))

#view data frame
df

  team position points
1 A Guard 22
2 A Guard 25
3 A Forward 19
4 B Guard 22
5 B Forward 12
6 B Forward 35

Пример 1: Подмножество кадров данных с использованием логики «ИЛИ»

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

 #subset data frame where team is 'A' or points is less than 20
df_sub <- subset(df, team == ' A ' | points < 20 )

#view subset
df_sub

  team position points
1 A Guard 22
2 A Guard 25
3 A Forward 19
5 B Forward 12

Каждая строка в подмножестве либо имеет значение «А» в столбце команды , либо значение в столбце очков меньше 20.

Примечание : | символ представляет собой «ИЛИ» в R.

В этом примере мы включили только один символ «ИЛИ» в функцию subset() , но мы можем включить столько символов, сколько захотим, на основе еще большего количества условий.

Пример 2: Подмножество кадров данных с использованием логики «И»

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

 #subset data frame where team is 'A' and points is less than 20
df_sub <- subset(df, team == ' A ' & points < 20 )

#view subset
df_sub

  team position points
3 A Forward 19

Обратите внимание, что полученное подмножество содержит только одну строку.

Действительно, только одна строка имеет значение «А» в столбце «Команды» и значение в столбце «Очки» меньше 20.

Примечание . Символ & обозначает «И» в R.

В этом примере мы включили только один символ «И» в функцию subset() , но мы можем включить столько символов, сколько захотим, на основе еще большего количества условий.

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

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

Как выбрать отдельные строки во фрейме данных в R
Как выбрать строки со значениями NA в R
Как выбрать строки на основе векторных значений в R

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

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