我基本上是在寻找一种在R中对这个Ruby脚本进行变换的方法.
我有一个任意的数字列表(在这种情况下,回归图的主持人的步骤)彼此之间的距离不相等,而且我d想要将这些数字范围内的值舍入到列表中最接近的数字.范围不重叠.
arbitrary.numbers <- c(4,10,15) / 10
numbers <- c(16:1 / 10, 0.39, 1.45)
range <- 0.1
Run Code Online (Sandbox Code Playgroud)
预期产量:
numbers
## 1.6 1.5 1.4 1.3 1.2 1.1 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.39 1.45
round_to_nearest_neighbour_in_range(numbers,arbitrary.numbers,range)
## 1.5 1.5 1.5 1.3 1.2 1.0 1.0 1.0 0.8 0.7 0.6 0.4 0.4 0.4 0.2 0.1 0.4 1.5
Run Code Online (Sandbox Code Playgroud)
我有一个小助手功能,可能会对我的特定问题做,但它不是很灵活,它包含一个循环.我可以在这里发布,但我认为真正的解决方案看起来完全不同.
> numbers = rep(numbers,length.out = 1000000)
> system.time({ mvg.round(numbers,arbitrary.numbers,range) })[3]
elapsed
0.067
> system.time({ rinker.loop.round(numbers,arbitrary.numbers,range) })[3] …Run Code Online (Sandbox Code Playgroud) r ×1