了解r中的bquote

时间:2015-10-01 19:21:50

标签: r side-effects

这应该很简单,但我无法理解发生了什么:

> m <- 6
> bquote(risk.(m) <- risk[list(.(m))])
risk.(m) <- risk[list(6)]

为什么不返回

risk6 <- risk[list(6)]

这是我想要实现的目标?我已阅读文档,不知道我缺少什么。

1 个答案:

答案 0 :(得分:1)

您似乎只需要在risk.()之间设置有效的分隔符:

> m <- 6
> bquote(risk*.(m) <- risk[list(.(m))])
risk * 6 <- risk[list(6)]

如果将其传递给plotmath调用绘图标题或其他注释,那么我认为它会显示:“risk6&lt; - risk.subscript(6)”。但是它以功能表示法显示:<-(risk6, risk.subscript(6) )。如果解决语法问题不是你需要的帮助,那么你应该解释你对risk - 对象的价值所做的事情,并扩展最终结果可能是什么。

png(height=200); plot(1,1,main=bquote(risk*.(m) <- risk[list(.(m))]) ); dev.off()

enter image description here

有时您会使用substitute获得不同的结果,但在这种情况下,结果与以下内容相同:

plot(1,1,main=substitute(risk*m <- risk[list(m)], list(m=6)) )

......事情更有趣:

plot(1,1,main=as.character(substitute(risk*m <- risk[list(m)], list(m=6))) )

所以......我认为你需要引用赋值运算符是否要将<-的解释抑制为函数。:

png(height=200); plot(1,1,main=bquote(risk*.(m)~"<-"~risk[list(.(m))]) ); dev.off()

enter image description here