R中的舍入值

rounding values in R

我正在尝试将正态分布的数字快速舍入为 1 到 10 之间的整数。 我想从分布中提取一个随机数,然后四舍五入到 1 到 10 之间的整数。 如果我运行: 标准 (1, 10, 2.5) 我得到类似 12.5689 的值,它大于 10。我知道我可以使用 round 或 ceiling 来四舍五入这些值,但我不确定如何在不创建必须为每次迭代筛选每个数据点的函数的情况下将其降低到 10纠正他们。我在 1 的下限上遇到了同样的问题,并找到了负数或小于 1 的值。 谢谢!

pminpmax是你的朋友:

pmin(10, pmax(1, round(rnorm(10, 10, 2.5))))
#  [1]  9  8  9  8 10 10 10  9 10 10