这在Rstudio中有效,运行块时我可以直接在文档中获得实时预览。但是,当我将.Rmd编织为.html时,我只会得到代码的回显,而没有输出。

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

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

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

但是,如果我对python进行同样的操作,则在编织时会得到正确的输出:
```{r engine='python'}
print("abc")
```

最佳答案

不幸的是,由于您注意到注释的执行方式,注释标记(/***R */)执行未得到保留。您可以说这是一个rmarkdown buglet;但是,/***R */的目的更多是为了在交互式开发过程中嵌入 call 。

此外,int main()的使用是一个很大的禁忌。引用德克:



结果,我选择将函数名称更改为toad()

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

例如

---
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()
```

r - 编织Rmarkdown块时,其他语言(尤其是Rcpp)无法打印输出-LMLPHP

关于r - 编织Rmarkdown块时,其他语言(尤其是Rcpp)无法打印输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44457347/

10-12 17:10