Если мой фрейм данных называется «дома» и я хочу исключить верхние 5% и нижние 5% столбца Sale_Price, как мне это сделать?

houses[quantile(Sale_Price, c(.05, .95))

Я пробовал этот код, но я получаю ошибки.

r
0
thestacker 8 Фев 2020 в 08:39

2 ответа

Лучший ответ

Вот некоторые данные, которые, как я полагаю, похожи на те, что у вас есть.

houses<-data.frame(Sale_Price=rnorm(100,50,5))

Код остается только с ценами между верхним и нижним 5% значений Sale_Price

#Calculate 0.05 and 0.95 percentiles
quants<-quantile(houses$Sale_Price, probs = c(0.05, 0.95))
#Subset according to the two percentiles
df1 <- houses$Sale_Price[houses$Sale_Price > quants[1] & houses$Sale_Price < quants[2]]
1
Jonathan V. Solórzano 8 Фев 2020 в 05:49

Используя dplyr, мы можем сделать

library(dplyr)

houses %>% filter(between(Sale_Price, 
                  quantile(Sale_Price, 0.05), quantile(Sale_Price, 0.95)))

Или с data.table

library(data.table)

setDT(houses)
houses[Sale_Price %between% quantile(Sale_Price, c(.05, .95))]
1
Ronak Shah 8 Фев 2020 в 07:06