假设有一堆数据从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语句丑陋起来?有没有更好的方法来处理这样的事情?
答案 0 :(得分:3)
您可以使用round
并使用1
和99
在pmin
或pmax
处强制进入pmax(1, pmin(99, round(percentiles)))
或{{1}}:
{{1}}