Как сохранить строки на основе процентиля столбца в R? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть df1:

county         state       score1 score2  FIPS
Abbeville South Carolina     3      0 45001
Acadia    Louisiana          11     1 22001
Accomack  Virginia           6      0 51001
3Ada      Idaho              151    3 16001
Adair     Iowa               1      0 19001
Adair     Missouri           2      0 29001

Я хотел бы сохранить строки, если они находятся в верхнем 40 процентиле на основе значений score1. Как я могу это сделать? Есть ли способ создать новый столбец значений A и B, чтобы указать, находится ли он в верхних 40% или нет?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

Это вычисляет 60-й процентиль на основе Score1 и отфильтровывает строки, где Score1 не> 60-й процентиль:

library(dplyr)

df1 %>% 
  mutate(percentile_60 = quantile(score1, probs = c(.6)),
         flag = score1 > percentile_60) %>% 
  filter(flag == TRUE)
0 голосов
/ 01 апреля 2020

Вы можете найти 60-й процентиль - отсечение для верхних 40% - показателя 1, используя quantile(df1$score1, 0.6).

Для того, что вы описываете как новый столбец значений A и B, я при условии, что вы хотите A, если он находится в верхних 40%, и B, если это не так? Чтобы получить это, вы можете сделать

df1$top40perc[df1$score1 >= quantile(df1$score1, 0.6)] <- "A"
df1$top40perc[df1$score1 < quantile(df1$score1, 0.6)] <- "B"

(возможно, есть способ объединить их, но я не уверен в этом с моей головы.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...