Как взять подвыбор данных из фрейма данных с верхним, средним и нижним процентами в фрейме данных в R - PullRequest
0 голосов
/ 19 января 2019

У меня есть фрейм данных, который в основном выглядит следующим образом:

X1      X2
A       1000
B       976
C       800
.       .
.       .
.       .
X       89
Y       45
Z       26

Теперь я хочу взять подвыбор из моего фрейма данных, состоящий из верхнего x%, среднего y% и нижнего z%на основе значений в столбце X2.Мой фрейм данных уже упорядочен по убыванию на основе X2.В настоящее время у меня есть этот код:

a  = subset(data, X2 > quantile(X2, prob = 1 - n/100))

Однако, это только возвращает мне верхний n% кадра данных на основе значений в X2.Кто-нибудь знает, как расширить этот код, чтобы получить подвыборку с верхним x%, средним y% и нижним z% на основе значений в столбце X2 .?

1 Ответ

0 голосов
/ 19 января 2019

Это не самое элегантное решение, оно довольно простое, но оно все еще выполняет свою работу.Мы будем использовать тот факт, что ваш набор данных упорядочивается по убыванию в соответствии с X2.

В следующей строке вы вставляете пропорции верхнего x% и нижнего z% (здесь 0.2 и 0.3 являются лишь примером, выизмените их в соответствии с вашими потребностями)

perc_top <- 0.2 ; perc_bottom <- 0.3

Затем вы разделяете набор данных на три части с помощью следующих строк кода:

n <- nrow(data)
# number of rows for the top dataset
rows_top <- round(perc_top*n) 
# number of rows for the bottom dataset
rows_bottom <- round(perc_bottom*n)
# creation of the three dataset
data_top <- data[1:rows_top,]
data_bottom <- data[(n-rows_bottom+1):n,]
data_middle <- data[-c(1:rows_top, (n-rows_bottom+1):n),]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...