编织Rmarkdown区块时,不同语言(尤其是Rcpp)不打印输出

编织Rmarkdown区块时,不同语言(尤其是Rcpp)不打印输出,r,knitr,r-markdown,rcpp,R,Knitr,R Markdown,Rcpp,这在Rstudio中工作,我在运行区块时直接在文档中获得实时预览。然而,当我将.Rmd编织成.html时,我只得到代码的回音,没有输出 ```{r engine='Rcpp'} #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] int main() { return 4; } /*** R main() */ ``` 不幸的是,注释标记(/***R*/)的执行没有得到保留,因为它的执行方式与您注意到的一样

这在Rstudio中工作,我在运行区块时直接在文档中获得实时预览。然而,当我将.Rmd编织成.html时,我只得到代码的回音,没有输出

```{r engine='Rcpp'}
#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
int main() {
  return 4;
}

/*** R
main()
*/
```

不幸的是,注释标记(
/***R*/
)的执行没有得到保留,因为它的执行方式与您注意到的一样。你可以说这是一个
rmarkdown
小号;然而,
/***R*/
更多的是用于在交互开发期间嵌入调用

另外,使用
int main()
也是一个很大的禁忌

您不能只将R上下文放入独立的
main()
,因为您需要R作为R上下文

因此,我选择将函数名更改为
toad()

为了获得相同的结果,并且真正实现识字编程,每个部分都应该嵌入到单独的代码块中。也就是说,您必须创建一个Rcpp代码块(最好启用缓存)和一个包含实际函数调用的R代码块

e、 g

---
标题:测试文件
作者:JJB
日期:2017年6月9日
输出:html\u文档
---
```{Rcpp hpc代码,cache=TRUE}
#包括
使用名称空间Rcpp;
//[[Rcpp::导出]]
int蟾蜍(){
返回4;
}
```
```{r交互输出}
蟾蜍()
```

+1感谢您帮助我解决类似问题。显然,在<代码> {rCPP Cache=true} //CuxCube中编写C++函数的效果更好,比用“代码> { r名称、引擎=‘rCPP’} /代码>标题,然后在调用函数的另一个R块中引用<代码>名称<代码>更为干净。
```{r engine='python'}
print("abc")
```
---
title: Test Doc
author: JJB
date: 6/9/2017
output: html_document
---


```{Rcpp hpc-code, cache = TRUE}
#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
int toad() {
  return 4;
}
```

```{r interactive-output}
toad()
```