com=cppFunction("
NumericVector comp(NumericVector x, NumericVector y) {
int m=0;
int n=0;
float sp=0;
float tstat=0;
float ye ;
m=x.size();
n=y.size();
sp=sqrt(((m-1)*pow(sd(x),2) + (n-1)*pow(sd(y),2))/ (m+n-2));
tstat= (mean(x) - mean(y)) / (sp*sqrt(1/m + 1/n));
ye= Rcpp::pt( abs(tstat), n+m-2);
}")
运行代码时,我有一个由las行生成的错误(我想Rcpp ::正在生成错误,但不知道如何解决)。
错误:
Error in sourceCpp(code = code, env = env, rebuild = rebuild, cacheDir =
cacheDir, :
Error 1 occurred building shared library.
有什么解决方法的想法吗?
版本:我已根据您的评论解决了该问题。谢谢!这是新代码。
com=cppFunction("
#include <Rcpp.h>
float comp(NumericVector x, NumericVector y) {
int m=0;
int n=0;
double sp=0;
double tstat=0;
double ye ;
m=x.size();
n=y.size();
sp=sqrt(((m-1)*pow(sd(x),2) + (n-1)*pow(sd(y),2))/ (m+n-2));
tstat= (mean(x) - mean(y)) / (sp*sqrt(1/m + 1/n));
return 2*(1- R::pt( abs(tstat), n+m-2,1,0));
}")