У меня есть большой набор данных сгруппированных наблюдений, я пытаюсь получить квартиль или другой тип, где каждая группа сравнивается с остальными наблюдениями.
Я испробовал несколько простых и аналогичных методов, но я очень разозлился из-за ошибок на выходе или получаю квартиль 1 для каждого наблюдения. Я также попытался сравнить ntile с родительским фреймом данных, но мне это тоже не понравилось.
Я уверен, что это очень просто, но мой мозг зажарен сегодня.
df <- tibble(ID= c("a", "b", "c", "d", "a", "b", "c", "d"),
population = c(10, 200, 3000, 40000, 120, 220, 3300, 44000))
df <- group_by(df, ID) %>%
summarize(quartile = ntile(2, 4))
Я ожидаю, что будет 1-4 квартиль, так как он разделяется в зависимости от разных размеров населения.
Вместо этого все просто отображается как 1, и я не могу понять, почему.
На что я надеюсь:
ID quartile
a 1
b 2
c 3
d 4
EDIT:
df <- mutate(df,
quartile = ntile(x = population, 4))
дает мне правильный вывод ... однако он не работает должным образом при использовании в моем фрейме данных