我下载了一个.tgz文件,其中包含R /中的R脚本和src /中的单个C文件.
R函数以这种方式调用C函数:
Mainfn<-function(x) {
output <- matrix(nrow(x),ncol(x));
output<-.C("myCfn",x=as.double(x),output=as.double(output),
PACKAGE='mypackage')
return(output)
}
Run Code Online (Sandbox Code Playgroud)
在C文件中,以这种方式定义的函数[...]表示一系列长的计算.
#include <R.h>
#include <Rmath.h>
#include <math.h>
/*----------------------------------------------------------*/
void myCfn(double *x,double *output){
[...]
}
Run Code Online (Sandbox Code Playgroud)
当我安装包时R CMD INSTALL mypackage.tgz,Mainfun()出错:"myCfn" not available for .C() for package "mypackage".我想知道如何让我的函数识别C文件中定义的这个函数?