Как подмножество фрейма данных в 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