假设我有一个S4类A
,其中包含一个@S
的广告位data.frame
。 data.frame
有一列X
。我想使用Rcpp
在C ++中处理这样的对象。这是我如何做到这一点的玩具示例:
SEXP f(S4 A)
{
DataFrame S = A.slot("S");
NumericVector X = S["X"];
// do something with X
}
我的问题如下。
X
是否仍然是对原始R数据或深层副本的引用?考虑Rcpp如何工作不应该是副本。但我怎么能确定?
此代码编译并运行良好,但IDE(Rstudio而不是编译器)会发出警告:conversion from 'Rcpp::SlotProxyPolicy< Rcppp::S4_Impl<PreserveStorage >::SlotProxy' to 'DataFrame' (aka 'DataFrame_Impl< PreserveStorage >') is ambigous.
这是什么意思?是认真的吗?
由于