我如何 select R-DataFrame 中第三个四分位数以上的数据
How I can select data that is above the third quartile in a R-DataFrame
我想要 select 个案例,其中某些变量的值高于相应的第三个四分位数 (3)
由于我的数据集非常大,我将以 R 中的 'Air Quality' 数据库为例。
df <- airquality[complete.cases(airquality),]
objective 是按某些列过滤
('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
另一种更有趣的方式?
更新:根据 OP 的更新请求,您可以使用 dplyr 中的 filter_at 来仅过滤选定的变量:
df <- airquality[complete.cases(airquality),]
filter_at(df, vars(Ozone, Solar.R, Wind, Temp), ~. > quantile(., probs = 0.75))
我想要 select 个案例,其中某些变量的值高于相应的第三个四分位数 (3)
由于我的数据集非常大,我将以 R 中的 'Air Quality' 数据库为例。
df <- airquality[complete.cases(airquality),]
objective 是按某些列过滤 ('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
另一种更有趣的方式?
更新:根据 OP 的更新请求,您可以使用 dplyr 中的 filter_at 来仅过滤选定的变量:
df <- airquality[complete.cases(airquality),]
filter_at(df, vars(Ozone, Solar.R, Wind, Temp), ~. > quantile(., probs = 0.75))