[我在别处将其草拟为评论,但决定创建一个适当的问题...]
在 Rcpp 中使用数据帧时,就代码结构而言,目前被认为是“最佳实践”的是什么?从 R 到 C++ 代码的输入数据帧“传输”非常容易,但是如果数据帧有 n 列,当前认为应该将此数据拆分为 n 个单独的( C++) vector 在被使用之前?
对我之前关于在数据框中使用字符串(字符 vector )列的问题的回答告诉我,是的,这是正确的做法。特别是,似乎不支持诸如 df.name[i] 之类的符号来直接引用数据帧信息(就像在 C 结构中可能有的那样),除非我我错了。
然而,这导致我们陷入这样一种情况,即对数据进行子集化要麻烦得多 - 不能在一行中对数据帧进行子集化,而是必须单独处理每个变量。那么,是否认为 Rcpp 中的子集最好通过 bool vector 隐式完成?
总而言之,我想简而言之,我想检查一下我目前的理解,即尽管可以将数据框传送到 C++ 代码,但无法在“df”中直接引用其列的各个元素.name[i]"时尚,并且没有通过选择满足简单条件的行(例如 df.date 在给定范围内)来生成输入 df 的子数据帧的简单方法。
最佳答案
因为数据框实际上在内部表示为 vector 列表,所以通过 vector 访问确实是您能做的最好的事情。根本没有办法在 C 或 C++ 级别逐行子集化。
几周前在 r-devel 上就 data.frame 的转置进行了很好的讨论(出于同样的原因,你不能“便宜地”这样做)。
关于c++ - Rcpp:使用 Rcpp 数据帧时推荐的代码结构(内联),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10911971/