【问题标题】:Understanding bquote in r理解 r 中的 bquote
【发布时间】:2015-12-29 23:05:56
【问题描述】:

这应该很简单,但我不明白发生了什么:

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

为什么没有返回

risk6 <- risk[list(6)]

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

【问题讨论】:

  • ?bquote"terms wrapped in .() are evaluated in the specified 'where' environment."
  • risk. 是语法上有效的符号。 bquote 不是 sprintf。但是,这看起来像一个 xy 问题。你想要达到的目标不是你应该需要的。

标签: r side-effects


【解决方案1】:

看来您只需在risk 和对.() 的调用之间放置一个有效的分隔符:

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

如果将其传递给绘图标题或其他注释的绘图调用,那么我认为它会显示:“risk6 <-(risk6, risk.subscript(6) )。如果解决句法问题不是您需要帮助的,那么您应该解释您对 risk-object 的值有什么,并扩展最终结果可能是什么。

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

有时您会得到与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))) )

所以......我认为你需要引用赋值运算符是你想抑制&lt;-作为函数的解释。:

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

【讨论】:

    猜你喜欢
    • 2014-03-20
    • 2018-06-11
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多