ifelse()在图例R中不工作

ifelse()在图例R中不工作,r,plot,R,Plot,我想知道为什么我下面的legend()中的ifelse()不能正常工作?我得到以下错误: **代表中出现错误(否,length.out=length(ans)): 尝试复制“语言”类型的对象*** 这是我的R代码: Gi <- 2 plot(1:10,ty="n") legend("topright", legend=ifelse(Gi>1, ## ! ifelse() Not Working HERE ! ## bquote(paste("E

我想知道为什么我下面的
legend()
中的
ifelse()
不能正常工作?我得到以下错误:

**代表中出现错误(否,length.out=length(ans)):
尝试复制“语言”类型的对象***

这是我的R代码:

Gi <- 2      
plot(1:10,ty="n")  

legend("topright",
  legend=ifelse(Gi>1,      ## ! ifelse() Not Working HERE ! ##
    bquote(paste("Evidence favors A: ",bold('CT'[10]),
                " = ", .(round(Gi,3)))),
    bquote(paste("Evidence favors B: ",bold('CT'[01]),
                " = ", .(round(1/Gi,3))))),
  pch = " ",cex=1.5, bty="n", inset=c(.005,-.05))
gi1,##!如果其他人不在这里工作##
bquote(粘贴(“证据有利于A:”,粗体('CT'[10]),
“=”,(圆形(Gi,3)),
bquote(粘贴(“证据有利于B:”,粗体('CT'[01]),
“=”,(圆形(1/Gi,3‘‘‘‘‘)),
pch=“”,cex=1.5,bty=“n”,插图=c(.005,-.05))

我不确定bquote()函数为您做了什么,但我稍微更改了您的代码,并使图例显示在绘图上

这是代码,如果您认为正确,请告诉我

Gi <- 2      
plot(1:10,ty="n")  

l <- ifelse(Gi>1, paste0("Evidence favors A: ",'CT[10]'," = ", (round(Gi,3))),
       paste0("Evidence favors B: ",'CT[01]'," = ",(round(1/Gi,3))))

legend("topright", legend=l, pch = " ",cex=1.5, bty="n", inset=c(.005,-.05))

Gi-Dinesh,谢谢,但这不行,因为
bquote()
请检查
?bquote()
,这里它确保
round()
CT[10]
都能正常工作。我猜你的代码中有一个bug。你认为这个bug是什么?此外,我确实检查了bquote(),这就是您出错的原因。Bquote对作为语言对象提供的参数求值,paste()返回一个字符串。对于一个传奇,字符串效果更好。亲爱的迪内什,谢谢你的更新。首先,您的代码不允许正确显示
'CT'[10]
中的下标,并且跳过了粗体显示。其次,将
Gi
更改为
.25
以查找bug,它是第二段代码中额外的