代码之家  ›  专栏  ›  技术社区  ›  Mus mzuba

检查另一个值两侧的值百分比

  •  1
  • Mus mzuba  · 技术社区  · 7 年前

    我有两个价值观( before after )并想检查 之前 小于或等于或大于或等于3%( +/-3.00% )另一种价值( agreed

    例如:

    ---------------------------
    | Agreed | Before | After |
    ---------------------------
    | 100    | 110    | 85    | (FALSE)
    ---------------------------
    | 350    | 300    | 480   | (FALSE)
    ---------------------------
    | 167    | 166    | 166   | (TRUE)
    ---------------------------
    | 200    | 220    | 206   | (TRUE)
    ---------------------------
    

    之前 之后 ( ).

    如何实现这一点?

    2 回复  |  直到 7 年前
        1
  •  1
  •   pk_22    7 年前

    这将提供您想要的输出

    > 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
    
        2
  •  1
  •   Mus mzuba    7 年前

    我想出了一个对我来说很好的方法。

    首先,我保存了 after agreed percentage threePercent ):

    df$threePercent <- ifelse(df$percentage >= 0.03 | df$percentage <= -0.03, "YES", "NO")
    

    这对我来说非常有效。