R 舍入到最接近的 0.5 或 0.1

标签 r rounding r-faq

我有一个股票价格数据集,已四舍五入到小数点后两位(1234.56)。我现在正在尝试四舍五入到每只股票都不同的特定值。以下是一些示例:

Current Stock Price         Minimum Tick Increment       Desired Output
  123.45                            .50                      123.50
  155.03                            .10                      155.00
  138.24                            .50                      138.00
  129.94                            .10                      129.90
   ...                              ...                       ...

我不太确定如何执行此操作,但愿意接受建议。

最佳答案

可能,

round(a/b)*b

会做这项工作。

> a <- seq(.1,1,.13)
> b <- c(.1,.1,.1,.2,.3,.3,.7)
> data.frame(a, b, out = round(a/b)*b)
     a   b out
1 0.10 0.1 0.1
2 0.23 0.1 0.2
3 0.36 0.1 0.4
4 0.49 0.2 0.4
5 0.62 0.3 0.6
6 0.75 0.3 0.6
7 0.88 0.7 0.7

关于R 舍入到最接近的 0.5 或 0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8664976/

相关文章:

R - 改变表格的顺序

r - 将列中以逗号分隔的字符串拆分为单独的行

r - 如何连接(合并)数据框(内部、外部、左、右)

sql - 丢弃时间戳中的毫秒部分

c++ - std::pow 不返回预期的 int 值

r - 使用 $ 和字符值动态选择数据框列

r - 批量为变量分配名称时,R Functionals不起作用

r - 将地理坐标从度数转换为十进制

按同名列分组的行值总和

javascript - 如何避免或解决下取整函数和错误表示的整数?