我已经开始使用Rcpp,并且我正在通过Hadley的book/page here工作。 我想这些基础知识对我来说已经绰绰有余了,尽管我错过了某些方面,或者觉得这可能不那么基本:使用C++为任意R对象分配属性?
如何使用C++为任意R对象分配属性?
如:
// [[Rcpp::export]]
NumericVector attribs(CharacterVector x,NumericVector y) {
NumericVector out = y;
out.attr("my-attr") = x;
return out;
}
我明白我必须指定在C++中的类型,但我仍想知道是否是我所看到分配给任何[R对象的属性,我传递的方式... data.table
中的settatr
与C++一起使用,但似乎仅适用于类data.table的元素。有没有办法为每个R模式/类写入额外的功能?
编辑:最终的目的是加快分配给列表中的每个元素的属性。 我们以前有discussion here - 但它到目前为止没有涉及Rcpp(除了通过其他软件包使用它)。
我不明白你的问题。 FWIW Rcpp画廊有一个关于设置属性的帖子,我已经写了一本关于Rcpp的书,所以... –
对不起,不准确。幸运的是,哈德利设法猜测我的意思并回答了问题。这本书已经在购物车上了。尽管如此,急于立即启动和使用现有项目的东西让我问问题:)。我认为让我困惑的是很多示例都使用CharacterVector或NumericVector作为函数输出类型,而不是SEXP或RObject。 –
所以你试图将“无论”(例如其他R对象)分配为属性?在这种情况下,你确实想通过SEXP/RObject去。大多数问题和问题都涉及到数字,所以这就是为什么他们会得到答案... –