试试下面的代码:
library(pracma)
f <- function(x) 1
integrate(f,0,1)$value
quad(f,0,1)
Run Code Online (Sandbox Code Playgroud)
quad() 工作正常,但集成() 报告错误消息:
积分错误(f,0,1):函数的评估给出了错误长度的结果
这个集成()应用程序有什么问题?提前致谢!
我在R中定义了一个c ++函数,它是:
library(Rcpp)
cppFunction(
'double foo(double t, int k) {
double x = t/factorial(k);
}')
Run Code Online (Sandbox Code Playgroud)
当我在R中运行此函数时,收到错误:
file59b051c6b334.cpp:7:25:错误:没有匹配函数来调用'factorial'
Run Code Online (Sandbox Code Playgroud)NumericVector x = t/factorial(k); ^~~~~~~~~/Library/Frameworks/R.framework/Versions/3.3/Resources/library/Rcpp/include/Rcpp/sugar/functions/math.h:59:19:
注意:候选函数并不可行:没有已知的转换,从"诠释"到"SEXP"(又名"SEXPREC*")的第一个参数VECTORIZED_MATH_1(阶乘,:: RCPP ::内部::阶乘)
/Library/Frameworks/R.framework/Versions/3.3/Resources/library/Rcpp/include/Rcpp/sugar/block/Vectorized_Math.h:91:9:
注意:从宏'VECTORIZED_MATH_1'扩展
Run Code Online (Sandbox Code Playgroud)__NAME__( SEXP x){ return __NAME__( NumericVector( x ) ) ; }
有人可以帮我解决这个问题吗?谢谢!