r-精简代码以减少多个replace()函数



为了优化我的代码,我正在寻找一种方法来组合许多连续的replace()函数。我有一张1到2500之间的号码表。每个数字应四舍五入到下一个更高的一百(5->100-136->200等(类别。有没有更优雅的解决方案?

目前看起来是这样的:

ls <- c(1,126,1399,857,94,543)
ls <- replace(ls, ls > 1 & ls < 100, 100)
ls <- replace(ls, ls > 100.1 & ls < 200, 200)
ls <- replace(ls, ls > 200.1 & ls < 300, 300)

等等…

使用ceiling四舍五入到最接近的较高整数:

ceiling(ls / 100) * 100
#[1]  100  200 1400  900  100  600

最新更新