关于C#:Rcpp:与Rcpp一起使用数据帧时的推荐代码结构(内联)

Rcpp: Recommended code structure when using data frames with Rcpp (inline)

[我已将此内容草拟为评论,但决定创建一个适当的问题...]

在Rcpp中使用数据帧时,在代码结构方面,目前被认为是"最佳实践"是什么?从R到C代码对输入数据帧进行"光束覆盖"的难易程度非常明显,但是如果该数据帧具有n列,则目前认为该数据应分为n个单独的部分(C )向量才能使用?

对我先前关于在数据帧中使用字符串(字符向量)列的问题的回答向我表明,是的,这是正确的做法。特别是,除非我弄错了,否则似乎不支持直接引用数据帧信息(如C结构中的内容)之类的df.name [i]之类的符号。铅>

但是,这使我们陷入一种情况,即对数据进行子集化非常麻烦-必须将每个变量单独处理,而不是能够将数据帧子集成一行。因此,是否认为最好通过布尔向量隐式完成Rcpp中的子集设置?

总而言之,我想简而言之,我想检查一下我目前的理解:尽管可以将数据帧传送到C代码,但无法直接引用\\中其列的各个元素。" df.name [i] "的方式,并且没有通过选择满足简单条件(例如df.date在给定范围内)的行来生成输入df的子数据帧的简单方法。


由于数据帧实际上在内部表示为向量列表,因此向量访问确实是您可以做的最好的事情。根本没有办法在C或C级别上逐行进行子集。

几周前,在转载data.frame的情况下,关于r-devel进行了很好的讨论(出于相同的原因,您不能"便宜"地做这件事)。