R,圆形,天花板和地板

时间:2013-05-26 19:48:15

标签: r rounding

假设有一堆数据从pnorm()返回,这样你就得到了.0003ish和.9999ish之间的数字。

numbers     <- round(rnorm(n = 10000, mean = 100, sd = 15))
percentiles <- pnorm(numbers, mean = 100, sd = 15)*100

然后进一步假设一个人有兴趣舍入百分位数,使.0003或whatevs将出现1(所以ceiling()),但99.999将出现到99(所以floor())。

我想我正在寻找的是圆形(),在极端的情况下以某种方式出色地知道要扭转它,但据我所知,没有这样的事情存在。我是否不得不用if语句丑陋起来?有没有更好的方法来处理这样的事情?

1 个答案:

答案 0 :(得分:3)

您可以使用round并使用199pminpmax处强制进入pmax(1, pmin(99, round(percentiles))) 或{{1}}:

{{1}}