Error: unused arguments in ifelse in R

Error: unused arguments in ifelse in R

我尝试使用以下代码使用 ifelse 语句离散化数据帧 df 中的列。 aar 列包含从 0 到 12 的十进制值和 NA。我检查数值并将其分配给以下类别。

> df= df%>% mutate(arr2= ifelse( grepl("NA", aar)==T, "NA",
> ifelse(as.numeric(aar)==0, "0-0.99", ifelse(as.numeric(aar))==1,
> "1-1.99", ifelse(as.numeric(aar)==2, "2-2.99",
> ifelse(as.numeric(aar)==3, "3-3.99", ifelse(as.numeric(aar)==4,
> "4-4.99", ifelse(as.numeric(aar)==5, "5-5.99",
> ifelse(as.numeric(aar)==6, "6-6.99", ifelse(as.numeric(aar)==7,
> "7-7.99", ifelse(as.numeric(aar)==8,
> "8-8.99",ifelse(as.numeric(aar)==9, "9-9.99",
> ifelse(as.numeric(aar)==10, "10-10.99",  ifelse(as.numeric(aar)==11,
> "11-11.99", "12" )))))))))))))

但是我得到以下错误,

Error: unused arguments ("1-1.99", ifelse(as.numeric(c("0", "NA", "0",...... 

我做错了什么?谁能帮我解决这个问题?

您在对 ifelse:

second 调用中过早关闭了括号
> ifelse(as.numeric(aar)==0, "0-0.99", ifelse(as.numeric(aar))==1,

应该是:

> ifelse(as.numeric(aar)==0, "0-0.99", ifelse(as.numeric(aar)==1,

我不是像@akrun 这样的 R 大师,但必须有更好的方法来实现您想要做的事情,而不是嵌套 12 个 ifelse 调用。您当前的方法使代码难以阅读和调试(因此您的问题)。