如何使用 dplyr 和数据框在 R 中创建百分位数?

Jas*_*eil 2 r percentile dplyr

我希望创建一个名为“percentile”的附加列,百分位数将基于销售报价,我不想在其上创建窗口函数,百分位数应基于整个数据集。请参见下文,数据目前按 SOLD_QUOOTES 降序排列,理想情况下,我们在图像中看到的第一行应该是 99.99% 的百分位,并且应该在表格中向下级联。

在此输入图像描述

异常输出

在此输入图像描述

Kie*_*ran 5

也许是这样的,

\n
\nlibrary(dplyr)\n\ndf <- tibble(sold_quotes = sample(1e6, 1e3, replace = TRUE))\n\npctiles <- seq(0, 1, 0.001)\n\ndf %>% \n  arrange(desc(sold_quotes)) %>% \n  mutate(percentile = cut(sold_quotes, \n                      quantile(sold_quotes, \n                               probs = pctiles), \n                      labels = pctiles[2:length(pctiles)]*100)) \n#> # A tibble: 1,000 x 2\n#>    sold_quotes percentile\n#>          <int> <fct>     \n#>  1      999562 100       \n#>  2      996533 99.9      \n#>  3      996260 99.8      \n#>  4      995499 99.7      \n#>  5      994984 99.6      \n#>  6      994937 99.5      \n#>  7      994130 99.4      \n#>  8      993001 99.3      \n#>  9      992902 99.2      \n#> 10      990298 99.1      \n#> # \xe2\x80\xa6 with 990 more rows\n
Run Code Online (Sandbox Code Playgroud)\n

百分位计算不依赖于sold_quotes降序重新排列;没有它你会得到正确的结果。我只是照搬你的例子。

\n