【问题标题】:Is there an R Markdown equivalent to \Sexpr{} in Sweave?在 Sweave 中是否有与 \Sexpr{} 等效的 R Markdown?
【发布时间】:2012-05-24 15:47:09
【问题描述】:

在 knitr 中使用 R Markdown 是否有等效于 Sweave 中的\Sexpr{}

【问题讨论】:

    标签: r markdown knitr


    【解决方案1】:

    是的。你可以使用

    `r your_expression_here`
    

    类似

    2+2 is: `r 2+2`
    

    应该产生:

    2+2 is: 4
    

    我最初发现很难弄清楚您可以在 knitr 中使用的每种不同样式(html、markdown、sweave ......)的不同语法是什么,并求助于查看 Yihui 的 minimal examples (做得很好),但如果你能阅读正则表达式,你可以查看default pattern definitions。如果需要,您甚至可以选择定义自己的语法。

    【讨论】:

    • 宣传可以更改默认模式,但如果你尝试,易辉会问你为什么要这样做。奇怪,在改变了这么多其他事情之后,并且有充分的理由。 github.com/yihui/knitr/issues/226
    • 我以为没有人会读正则表达式。它们不是一次写入的非语言吗? :-)
    • 最初设置解析确保它需要更多的工作,但我想如果你写了很多内联的东西,从长远来看它可以节省一些输入。另外,我知道我已经考虑过搞砸并改变其中的一些。为什么?因为你给了我们这样做的选择:p
    • @Dason 哈哈,是的,你可以在 knitr 中搞砸很多东西,如果你离开默认设置,你只需要注意其他人的可重复性(需要给他们更多关于如何编译文档的说明)
    【解决方案2】:

    默认情况下,R Markdown 中的内联 R 代码将被格式化为代码。如果您只想让输出出现asis,则将 R 命令包含在I(...) 中。用I(...) 封闭输出与Sexpr 的行为相匹配。这种区别有时很重要。有关更多信息,请参阅Yihui Xie 的此评论。下表显示了从 R Markdown 到 Markdown 到 HTML 的不同输出。

    R Markdown        `r 2 + 2`               `r I(2+2)`
    Markdown              `4`                     4
    HTML             <code>4</code>               4
    

    【讨论】:

    • 你刚刚被问题抢先:)
    猜你喜欢
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 2019-12-31
    • 2015-06-01
    • 1970-01-01
    • 2018-03-10
    相关资源
    最近更新 更多