检查一个值相对于另一个值的百分比
Checking percentage of a value either side of another value
我有两个值(before
和 after
),想检查 before
和 after
之间的差异(变化)是否小于或等于达到或大于或等于另一个值 (agreed
) 的百分之三 (+/-3.00%
)。
例如:
---------------------------
| Agreed | Before | After |
---------------------------
| 100 | 110 | 85 | (FALSE)
---------------------------
| 350 | 300 | 480 | (FALSE)
---------------------------
| 167 | 166 | 166 | (TRUE)
---------------------------
| 200 | 220 | 206 | (TRUE)
---------------------------
请注意 before
和 after
中的值确实可以相同。我要检查的是 after
值是否为 agreed
(+/-3.00%
).
两侧的百分之三
如何实现?
这给出了你想要的输出
> agreed = c(100,350,167)
> before = c(110,300,166)
> after = c(85, 480, 165)
>
> abs(after-before)
[1] 25 180 1
> abs(after-before)/agreed
[1] 0.250000000 0.514285714 0.005988024
> abs(after-before)/agreed<0.03
[1] FALSE FALSE TRUE
我想出了一个适合我的方法。
首先,我将 after
和 agreed
之间的差异百分比保存到新列 (percentage
),然后我根据以下内容进行检查并将结果分配给新列(threePercent
):
df$threePercent <- ifelse(df$percentage >= 0.03 | df$percentage <= -0.03, "YES", "NO")
这非常适合我。
我有两个值(before
和 after
),想检查 before
和 after
之间的差异(变化)是否小于或等于达到或大于或等于另一个值 (agreed
) 的百分之三 (+/-3.00%
)。
例如:
---------------------------
| Agreed | Before | After |
---------------------------
| 100 | 110 | 85 | (FALSE)
---------------------------
| 350 | 300 | 480 | (FALSE)
---------------------------
| 167 | 166 | 166 | (TRUE)
---------------------------
| 200 | 220 | 206 | (TRUE)
---------------------------
请注意 before
和 after
中的值确实可以相同。我要检查的是 after
值是否为 agreed
(+/-3.00%
).
如何实现?
这给出了你想要的输出
> agreed = c(100,350,167)
> before = c(110,300,166)
> after = c(85, 480, 165)
>
> abs(after-before)
[1] 25 180 1
> abs(after-before)/agreed
[1] 0.250000000 0.514285714 0.005988024
> abs(after-before)/agreed<0.03
[1] FALSE FALSE TRUE
我想出了一个适合我的方法。
首先,我将 after
和 agreed
之间的差异百分比保存到新列 (percentage
),然后我根据以下内容进行检查并将结果分配给新列(threePercent
):
df$threePercent <- ifelse(df$percentage >= 0.03 | df$percentage <= -0.03, "YES", "NO")
这非常适合我。