我该如何解决这个问题?
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()
因此,这会将其修复为内联使用,但会因块使用而中断。但仅限于印刷品。猫甚至不用于内联工作。