【问题标题】:Calculate Numerator and determinator in Mutate R在 Mutate R 中计算分子和确定器
【发布时间】:2022-01-15 14:09:51
【问题描述】:

我在 R 中有这个表:

A10 B100
-3 0
0 1
0 1
2 -4

我有 10,000 个这一行。

我正在尝试计算:

df$Result = (GREATEST(1,[A10]+1)) / (GREATEST(1,[B100]+1)) 

分子:(GREATEST(1,[A10]+1))

如果[A10]+1小于1,那么你应该使用1作为分子,否则使用[A10]+1

对于分母:(GREATEST(1,[B100]+1))

如果[B100]+1小于1,那么你应该使用1作为分母,否则使用[B100]+1

如何编码这个变异 R?有10多种组合。

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    你可以用pmax得到(GREATEST(1,[A10]+1))和分母一样/

    library(dplyr)
    
    df <- df %>% mutate(result = pmax(1, A10 + 1) / pmax(1, B100 + 1))
    df
    
    #  A10 B100 result
    #1  -3    0    1.0
    #2   0    1    0.5
    #3   0    1    0.5
    #4   2   -4    3.0
    

    【讨论】:

      【解决方案2】:

      解决此问题的另一种方法是使用ifelse() 函数,如下所示

      library(dplyr)
      
      df <- df %>%
              mutate(result = (ifelse(1 > A10 + 1, 1, A10 +1))/(ifelse(1 > B100 + 1, 1, B100 +1)))
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-17
        • 1970-01-01
        • 2014-03-01
        • 2018-06-11
        • 2019-11-17
        • 2016-09-27
        • 1970-01-01
        相关资源
        最近更新 更多