作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有办法在 R 对象中存储 CPP 类。
我知道我们可以在 R 中调用 CPP 函数,也可以调用 CPP 类的方法。
但是我想在一个R对象中操作CPP类,我不知道这是否可能。
示例:
我在 R 脚本中调用此代码:
dyn.load(paste("X", .Platform$dynlib.ext, sep = ""))
.C("X_main")
X_main 函数:
extern "C" {
void X_main () {
X x;
}
}
在 X.cpp 中:
X::X() { cout<<"constructor X\n"<<endl;}
我可以在 R 对象中存储类“X”的对象吗?并在存储的对象上使用类“X”的方法(在脚本中之后)?
或者,我可以在内存中存储 X 类的对象吗?我想多次使用这个对象。
最佳答案
通过编写转换器,您可以分配 X
的组件,它映射到 R 也知道的类型:integer
、numeric
, character
, ... 都是标量或 vector ,当然还有它们的组合。
但是你不是免费得到它的。有了 Rcpp 和 friend 们,我们有了所有的包装器——以及一堆构建工具——来让这一切变得简单:
R> library(Rcpp)
R> cppFunction("arma::mat doubleIt(arma::mat X) { return 2*X; }",
+ depends="RcppArmadillo")
R> doubleIt(matrix(1:9,3))
[,1] [,2] [,3]
[1,] 2 8 14
[2,] 4 10 16
[3,] 6 12 18
R>
这里有 900 多个其他 Rcpp 问题,Rcpp Gallery site 上有近 100 个有效示例.环顾四周!
关于c++ - 如何在 R 对象中存储 CPP 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33939492/
我是一名优秀的程序员,十分优秀!