Как я могу выбрать данные, которые выше третьего квартиля в R-DataFrame - PullRequest
0 голосов
/ 29 апреля 2020

Я хотел бы выбрать случаи со значениями в некоторых переменных выше соответствующего третьего квартиля (?3)

Поскольку мой набор данных очень большой, я возьму в качестве примера базу данных «Качество воздуха», которая выходит в R.

df <- airquality[complete.cases(airquality),]

Цель состояла в том, чтобы отфильтровать по определенным столбцам ('Ozone', 'Solar.R', 'Wind', 'Temp').

В настоящее время я смог разработать это решение:

filtro_Ozone = df$Ozone>quantile(df$Ozone)[4]
filtro_Solar.R = df$Solar.R>quantile(df$Solar.R)[4]
filtro_Wind = df$Wind>quantile(df$Wind)[4]
filtro_Temp = df$Temp>quantile(df$Temp)[4]

df[filtro_Ozone & filtro_Solar.R & filtro_Wind & filtro_Temp,]

С помощью которого я получаю:

   Ozone Solar.R Wind Temp Month Day
40    71     291 13.8   90     6   9

Еще один более изумительный способ получить это?

1 Ответ

1 голос
/ 29 апреля 2020

ОБНОВЛЕНИЕ: для обновленного запроса OP вы можете использовать filter_at из dplyr, чтобы фильтровать только по выбранным переменным:

df <- airquality[complete.cases(airquality),]
filter_at(df, vars(Ozone, Solar.R, Wind, Temp), ~. > quantile(., probs = 0.75))
...