在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
R 2.14.0源码中有函数 massdist.c 函数,在 R 3.5.1 中该函数发生了改变,但是有一个软件包 kerfdr 需要调用 2.14.0 中的该 C 函数,为了便于后续程序的发展。 现欲将 老版本的 massdist.c ( 从R 2.14.0 源码中找到 massdist.c 修改名为 massdistnew.c ,内部函数命名为masstest.c) 函数转移到 R 3.5.1中: 1:安装 Rtools 2:安装 mingw 3 : 将Rtools 安装文件中的bin 以及mingw的 bin 文件添加到环境变量中 4:在R语言中运行下面两行代码生成dll文件 setwd("H:/test/Rcpp_test") system("R CMD SHLIB massdistnew.c") 5:载入dll文件 dyn.load('H:/test/Rcpp_test/massdistnew.dll') 6: 在调用函数时原始的调用方式为: # mass distribution according to tau y = .C("massdist", x = as.double(xtrunc), xmass = as.double(tau[trunc]/sum(tau[trunc])), nx = nx, xlo = as.double(lo), xhi = as.double(up), y = double(2 * n), ny = as.integer(n), PACKAGE = "stats")$y
修改为: dyn.load('H:/test/Rcpp_test/massdistnew.dll') y = .C("massdisttest", x = as.double(xtrunc), xmass = as.double(tau[trunc]/sum(tau[trunc])), nx = nx, xlo = as.double(lo), xhi = as.double(up), y = double(2 * n), ny = as.integer(n))$y
以上处理之后kerfdr即可在 R 3.5.1 中运行
|
请发表评论