Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内联::CXX函数在knitr中显示不好 我在C++代码中(通过内联包中的cxx函数编写)在使用KNITR时显示得很好。这里有一个MWE: <html> <body> <!--begin.rcode library(Rcpp) library(inline) test <- cxxfunction(signature(xR="numeric"), body=" double x = as<double>(xR); return(wrap(x)); ", plugin="RcppArmadillo") end.rcode--> </body> </html>_R_Inline_Knitr_Rcpp - Fatal编程技术网

内联::CXX函数在knitr中显示不好 我在C++代码中(通过内联包中的cxx函数编写)在使用KNITR时显示得很好。这里有一个MWE: <html> <body> <!--begin.rcode library(Rcpp) library(inline) test <- cxxfunction(signature(xR="numeric"), body=" double x = as<double>(xR); return(wrap(x)); ", plugin="RcppArmadillo") end.rcode--> </body> </html>

内联::CXX函数在knitr中显示不好 我在C++代码中(通过内联包中的cxx函数编写)在使用KNITR时显示得很好。这里有一个MWE: <html> <body> <!--begin.rcode library(Rcpp) library(inline) test <- cxxfunction(signature(xR="numeric"), body=" double x = as<double>(xR); return(wrap(x)); ", plugin="RcppArmadillo") end.rcode--> </body> </html>,r,inline,knitr,rcpp,R,Inline,Knitr,Rcpp,当我编写这段代码时,它通过将所有新行替换为“\n”来重新格式化body参数,这使得它很难阅读。有什么解决办法吗?现在您有两个理由切换到Rcpp属性:第一,它更易于使用。其次,它在knitr中的渲染效果更好:) 以下代码也应该这样做——而不是属性如何为您处理所有转换: library(Rcpp) library(inline) cppfunction('double mytest(double x) { return x; }', depends="RcppArmadillo") 请尝试在k

当我编写这段代码时,它通过将所有新行替换为“\n”来重新格式化body参数,这使得它很难阅读。有什么解决办法吗?

现在您有两个理由切换到Rcpp属性:第一,它更易于使用。其次,它在knitr中的渲染效果更好:)

以下代码也应该这样做——而不是属性如何为您处理所有转换:

library(Rcpp)
library(inline)
cppfunction('double mytest(double x) {
  return x;
}', depends="RcppArmadillo")

请尝试在knitr中呈现它。

出现了一个主要更改,如中所列:默认块选项
tidy=TRUE
已更改为
FALSE
。这就是为什么您的换行符不再使用knitr1.6转换为literal
\n

另一个选项是在knitr中使用Rcpp引擎:

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

// [[Rcpp::export]]
double meanC(NumericVector x) {
  int n = x.size();
  double total = 0;

  for(int i = 0; i < n; ++i) {
    total += x[i];
  }
  return total / n;
}
```
`{r,engine=“Rcpp”}
#包括
使用名称空间Rcpp;
//[[Rcpp::导出]]
双平均值C(数值向量x){
int n=x.size();
双倍合计=0;
对于(int i=0;i

块将被语法突出为C++,并且函数将被使用到其他块,使用<代码> CPPPOrthor()。唯一的缺点是编译不会被缓存。

Hmm。。。当我编写代码时,我得到以下行:cppFunction(“double mytest(double x){\n return x;\n}”,dependens=“RcppArmadillo”)。不过,cppFunction确实更易于使用!您正在运行knitr的最新版本吗?因为我无法重现问题。啊,是的,从1.5更新到1.6修复了问题(我更新了Rcpp、inline和RcppArmadillo,但忘记了knitr)!谢谢你的帮助!如所示,执行
update.packages()
以查看问题是否会神奇地消失:)对不起,我以后一定会这么做!