我写了一段使用了75个(!!!)嵌套ifelse语句的代码。
我知道这可能是我能写的最低效的代码,但当我尝试运行它时,收到了以下错误:
>Error: unexpected ')' in:
" ifelse(basic$SEMType=="ppc" &
(grepl("Wellpoint Prospecting",basic$CategoryName)), "Wellpoint Prospecting","other"
)))))))))))))))))))))))))))))))))))))"
我检查了几次“)”的数量。它是正确的,ifelse也关闭了。
我也尝试分块运行嵌套的ifelse,每次15个(有时更大的块),它可以工作,所以我认为语法错误的机会很小。
有人遇到过这样的限制吗?
现在我逐段运行代码,首先运行内部的ifelse并记录结果,然后向上移动通道。到目前为止,这似乎有效。
ifelse
语句做什么? - Dasonifelse
语句。只需创建一个向量group.id <- rep(NA, nrow(basic))
,并分配类似于group.id[basic$SEMType=="ppc" & grepl("Wellpoint Prospecting",basic$CategoryName)] <- "Wellpoint Prospecting"
的值给它,诸如此类。这样,每个ifelse
语句都被替换为一个赋值语句,从而导致更清晰的代码(很可能您还可以编写一个函数来进一步简化这些赋值语句,但如果没有查看您的代码就无法确定)。 - konvasifelse
非常缓慢。嵌套它们会有指数级的缓慢风险。请参见此处:https://dev59.com/fGQo5IYBdhLWcg3wKcrH#16275201 - Ricardo Saportaifelse
时,我的代码阅读能力会迅速降至0。我真的建议将你想要实现的(小)示例作为一个单独的问题发布,因为你做得不对。 - eddi