内联编织器打印代码不打印

时间:2015-11-02 13:29:15

标签: r knitr

我该如何解决这个问题?

Inline `r 41`. What about `r print(42)`? Finally, `r I(print(43))`.

当我通过knit2html()运行时,它会将42和43打印到R控制台。生成的HTML文件缺少42.

Inline 41. What about ? Finally, 43.

我刚发现:https://github.com/yihui/knitr/blob/master/NEWS.md

MINOR CHANGES

    for inline R code, the value is returned only if the R code prints a visible value, e.g. \Sexpr{x <- 1} will be empty, and \Sexpr{pi} will return the value of pi

我认为这种改变是错误的。请还原它。我有一个功能,可以进行打印。每次使用它时,我真的需要将它包装在I()中吗?

我可以将函数中的print语句包装在I()中,但这是一个hack,它甚至不能很好地工作。如果我使用第三方功能进行打印怎么办?

当我在I()中的函数中包装print语句时会发生什么:

my_print = function () {
    I(print(142))
}

my_cat = function () {
    I(cat(143, "\n"))
}

降价:

What `r my_print()` about `r my_cat()` this?

```{r}
my_print()
```

```{r}
my_cat()
```

输出:

What 142 about this?
my_print()

## [1] 142

## [1] 142

my_cat()

## 143

## list()

因此,这会将其修复为内联使用,但会因块使用而中断。但仅限于印刷品。猫甚至不用于内联工作。

0 个答案:

没有答案