c – Rcpp:使用带Rcpp的数据框时的推荐代码结构(内联)

[我把它作为其他地方的评论勾勒出来,但决定创造一个正确的问题…]

在Rcpp中使用数据框时,目前在代码结构方面被认为是“最佳实践”?人们可以很容易地将输入数据帧从R转换到C代码,但是如果数据帧有n列,那么当前认为这个数据应该被分成n个单独的(C)向量在被使用之前?

我之前关于在数据框中使用字符串(字符向量)列的问题的回答向我表明是的,这是正确的做法.特别是,似乎没有像df.name [i]那样的表示法直接引用数据帧信息(正如C结构中可能有的那样),除非我弄错了.

然而,这导致我们进入这样一种情况,即对数据进行子集化会更加麻烦 – 而不是能够在一行中对数据帧进行子集化,每个变量必须单独处理.那么,是否认为Rcpp中的子集最好通过布尔向量隐式地完成,比如说?

总而言之,我想简单地说,我想检查一下我目前的理解,即尽管数据框可以传送到C代码,但是没有办法在“df.name”中直接引用其列的各个元素[ i]“时尚,并且没有通过选择满足简单标准的行来生成输入df的子数据帧的简单方法(例如,df.date在给定范围内).

最佳答案
因为数据帧实际上在内部表示为向量列表,所以向量访问确实是您可以做的最好的.根本无法在C或C级别按行进行分组.

几周前在一个数据框架转换的背景下对r-devel进行了很好的讨论(由于同样的原因,你不能’廉价’).

转载注明原文:c – Rcpp:使用带Rcpp的数据框时的推荐代码结构(内联) - 代码日志