【发布时间】: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而不是嵌套的ifelsehell,你可以得到更易读的代码。 -
如果您收到错误消息,请务必逐字显示。如果您无法从错误消息中推断出错误发生的确切位置(通常可以),您可以尝试使用
traceback()。