我在使用Rcpp中的Rcpp调用qnorm
时遇到问题
rnorm
函数在R中可以正常工作:
library(Rcpp); p <- 0.8
# create rnorm_cpp function ----
cppFunction('NumericVector rnorm_cpp(int n, double mean, double sd) {
return Rcpp::rnorm(n, mean, sd); }')
# test function ----
set.seed(1); n <- 10e3
mean(rnorm_cpp(n,2,3)) # returns ~ 2
sd(rnorm_cpp(n,2,3)) # returns ~ 3
但是,如果我对qnorm做同样的事情:
# create qnorm_cpp function ----
cppFunction('NumericVector qnorm_cpp(double p, double mean, double sd) {
return Rcpp::qnorm(p, mean, sd); }')
我收到以下错误:Error in sourceCpp(code = code, env = env, rebuild = rebuild, cacheDir = cacheDir, : Error 1 occurred building shared library.
如何修改此代码以使其正常工作?谢谢。
我希望qnorm_cpp(p, 2, 3)
的工作方式与qnorm(p, 2, 3)
相同,在这种情况下,其产生的值为4.524864