gpt4 book ai didi

r - 如何在 R 中舍入到 0.25 或 0.75,而不是 0.00 或 0.50?

转载 作者:行者123 更新时间:2023-12-03 23:42:25 24 4
gpt4 key购买 nike

我正在使用 R,我想将我的数据四舍五入到最接近的 0.250.75,但不包括 0.00 或 0.50。

例如,如果我想四舍五入到最接近的 0.00 或 0.50,我会这样做:

test <- seq(1,10,0.33) 
[1] 1.00 1.33 1.66 1.99 2.32 2.65 2.98 3.31 3.64 3.97 4.30 4.63 4.96 5.29 5.62 5.95 6.28 6.61 6.94 7.27 7.60 7.93 8.26 8.59 8.92 9.25 9.58 9.91

四舍五入到 0.00 或 0.50:

round(test * 2)/2
[1] 1.0 1.5 1.5 2.0 2.5 2.5 3.0 3.5 3.5 4.0 4.5 4.5 5.0 5.5 5.5 6.0 6.5 6.5 7.0 7.5 7.5 8.0 8.5 8.5 9.0 9.0 9.5 10.0

我可以对 0.25 的倍数做同样的事情。我该怎么做才能将这些数字四舍五入为 0.25 或 0.75,不包括 0.50 和 0.00?

最佳答案

round((test + 0.25) * 2)/2 - 0.25 怎么样?对于您的 test,它给出:

# [1] 0.75 1.25 1.75 1.75 2.25 2.75 2.75 3.25 3.75 3.75 4.25 4.75 4.75 5.25 5.75
#[16] 5.75 6.25 6.75 6.75 7.25 7.75 7.75 8.25 8.75 8.75 9.25 9.75 9.75

你也可以round((test - 0.25) * 2)/2 + 0.25,给

# [1] 1.25 1.25 1.75 1.75 2.25 2.75 2.75 3.25 3.75 3.75 4.25 4.75 4.75 5.25 5.75
#[16] 5.75 6.25 6.75 6.75 7.25 7.75 7.75 8.25 8.75 8.75 9.25 9.75 9.75

整数在舍入方向上的行为不同。以 1 为例。第一种情况下舍入为 0.75,而第二种情况下舍入为 1.25。整数在这里是“灰色地带”;你需要决定你想要的方向。

关于r - 如何在 R 中舍入到 0.25 或 0.75,而不是 0.00 或 0.50?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38985186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com