2

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

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

然后进一步假设有人有兴趣将百分位数四舍五入,这样 0.0003 或 whatevs 将变为 1(因此,天花板()),但 99.999 将变为 99(因此,地板())。

我想我正在寻找的是 round() 以某种方式巧妙地知道在极端情况下将其反转,但据我所知,不存在这样的事情。我将不得不用 if 语句来丑化它吗?有没有更好的方法来处理这种事情?

4

1 回答 1

3

您可以使用and 来使用和round强迫事物进入199四肢:pminpmax

pmax(1, pmin(99, round(percentiles)))
于 2013-05-26T20:02:22.717 回答