Как получить квантиль из числа категорий в R? - PullRequest
0 голосов
/ 04 декабря 2018

Например, у меня есть пример данных о человеческом росте в кадре данных:

df <- data_frame(height = c(1.5, 1.6, 1.7, 1.8, 1.9), number = c(20, 30, 50, 30, 20))

Как я могу рассчитать квантиль 90% этого образца?

Я знаю, что ggplot2 имеетФункция может построить ecdf образца:

ggplot(df, aes(x = height, y = number)) + stat_ecdf()

, но мне нужен только указанный квантиль, а не график.

Я мог бы повторять каждый height number раз для создания вектора и использовать функцию quantile для вектора, но по мере увеличения number этот метод кажется очень неэффективным.

РЕДАКТИРОВАТЬ:

Кажется, stat_ecdf не должны использоваться таким образом, и когда распределение данных перекошено:

df <- data_frame(height = c(1.5, 1.6, 1.7, 1.8, 1.9), number = c(100, 2, 3, 4, 5))

только квантиль повторного векторадает желаемый результат:

quantile(c(rep(1.5,100), rep(1.6,2), rep(1.7,3), rep(1.8,4), rep(1.9,5)))
...