我正在使用Rcpp
软件包将此R函数转换为C ++函数。但是,由于rdiscrete()
函数来自e1071
程序包,因此我很难加载现有的R程序包并从此程序包中调用函数。
R函数(可以正常工作):
library(e1071)
signR <- function(x) {
if (x >= 0) {
rdiscrete(10,c(0.2,0.8),c(5,6))
} else {
rdiscrete(10,c(0.2,0.8),c(1,2))
}
}
## Example
signR(2)
Rcpp版本(指向rdiscrete
函数的错误):
library(Rcpp)
cppFunction('int signC(int x) {
if (x >= 0) {
return rdiscrete(10,c(0.2,0.8),c(5,6));
} else {
return rdiscrete(10,c(0.2,0.8),c(1,2));
}
}')
我非常感谢您提前答复!