[我把它作为其他地方的评论勾勒出来,但决定创建一个正确的问题......]
在Rcpp中使用数据框时,目前在代码结构方面被认为是“最佳实践”?可以很容易地将输入数据帧从R“转换”到C ++代码,但是如果数据帧有n列,那么是当前认为这些数据应该分成n个单独的( C ++)载体在使用之前?
对我在数据框中使用字符串(字符向量)列的上一个问题的回答向我表明是的,这是正确的做法。特别是,似乎没有像df.name [i] 这样的表示法直接引用数据帧信息(如C结构中可能有的那样),除非我错了。
然而,这导致我们陷入这样一种情况:数据的子集化更加麻烦 - 而不是能够在一行中对数据帧进行子集化,每个变量必须单独处理。所以,认为Rcpp中的子集最好通过布尔向量隐式地完成,比方说呢?
总而言之,我想简单地说,我想检查一下我目前的理解,即虽然数据框可以传送到C ++代码,但是没有办法在“df”中直接引用其列的各个元素。 .name [i]“时尚,并没有通过选择满足简单标准的行来生成输入df的子数据帧的简单方法(例如,df.date在给定范围内)。
答案 0 :(得分:7)
因为数据帧实际上是在内部表示为向量列表,所以向量访问确实是你能做的最好的。根本无法在C或C ++级别按行进行分组。
几周前,在数据框架转换的背景下,对r-devel进行了很好的讨论(由于同样的原因,你不能'廉价')。