【问题标题】:I get the unused argument error every time I run this code, why? [closed]每次运行此代码时都会出现未使用的参数错误,为什么? [关闭]
【发布时间】:2019-09-05 05:40:11
【问题描述】:

您能帮我找出我的代码有什么问题吗?我正在使用 mutate 函数添加一列并根据某些条件在不同类别下映射某些 ID。下面是我的代码

 Repeat_Query2 = Repeat_Query %>% mutate(Category = ifelse(Queries = 2 & Conversion > 0 & Conversion <= 33, "LQ-LC", ifelse(Queries > 2 & Queries <= 4 & Conversion > 0 & Conversion <= 33, "MQ-LC", ifelse(Queries > 4 & Conversion > 0 & Conversion <= 33, "HQ-LC", ifelse(Queries = 2 & Conversion >= 33 & Conversion <= 66, "LQ-MC", ifelse(Queries > 2 & Queries <= 4 & Conversion >= 33 & Conversion <= 66, "MQ-MC", ifelse(Queries > 4 & Conversion >= 33 & Conversion <= 66, "HQ-MC", ifelse(Queries = 2 & Conversion >= 66, "LQ-HC", ifelse(Queries > 2 & Queries <= 4 & Conversion >= 66, "MQ-HC", ifelse(Queries > 4 & Conversion >= 66, "HQ-HC","NA"))))))))))

【问题讨论】:

  • 这是一个使用 dplyr::case_when 代替许多嵌套 ifelse 语句的好地方,这些语句很难阅读/理解/调试。
  • 提供示例数据,快速查看代码似乎没有语法错误。如果你使用case_when 或cut 而不是嵌套的ifelse hell,你可以得到更易读的代码。
  • 如果您收到错误消息,请务必逐字显示。如果您无法从错误消息中推断出错误发生的确切位置(通常可以),您可以尝试使用traceback()。

标签: r dplyr


【解决方案1】:

您使用= 而不是== 作为运算符。 = 用于赋值和函数参数,== 用于逻辑运算。另外,正如这里的其他人所说,你应该在这里使用case_when()。

您会收到错误消息,因为例如 Queries 被解释为参数。

【讨论】:

    【解决方案2】:

    我在学习case_when,把别人的cmets放在一起:

    Repeat_Query2 = Repeat_Query %>% 
      mutate(Category = case_when(Queries == 2 & Conversion > 0 & Conversion <= 33 ~ "LQ-LC", 
                      Queries > 2 & Queries <= 4 & Conversion > 0 & Conversion <= 33 ~ "MQ-LC", 
                      Queries > 4 & Conversion > 0 & Conversion <= 33 ~ "HQ-LC",  
                      Queries == 2 & Conversion >= 33 & Conversion <= 66 ~ "LQ-MC", 
                      Queries > 2 & Queries <= 4 & Conversion >= 33 & Conversion <= 66 ~ "MQ-MC", 
                      Queries > 4 & Conversion >= 33 & Conversion <= 66 ~ "HQ-MC", 
                      Queries == 2 & Conversion >= 66 ~ "LQ-HC", 
                      Queries > 2 & Queries <= 4 & Conversion >= 66 ~ "MQ-HC", 
                      Queries > 4 & Conversion >= 66 ~ "HQ-HC",
                      TRUE ~ NA))
    

    这可能仍然不起作用。如果您收到错误消息,提供一些数据和详细信息会很有帮助。

    【讨论】:

      猜你喜欢
      • 2020-05-18
      • 1970-01-01
      • 2015-09-18
      • 2022-11-07
      • 2021-07-30
      • 1970-01-01
      • 2022-11-14
      • 2020-12-15
      • 2020-08-24
      相关资源
      最近更新 更多