c++ - Rcpp:使用 Rcpp 数据帧时推荐的代码结构(内联)

标签 c++ r data-structures dataframe rcpp

[我在别处将其草拟为评论,但决定创建一个适当的问题...]

在 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/

相关文章:

c++ - 简单的用户输入验证不起作用

python - 参数未通过 rpy2 传递给 R

无法删除单链表中的节点

在 R 中使用环绕重新排序向量

java - 打印循环队列

c++ - 指向类的指针

c++ - 不使用 vector 、大小或其他参数的递归回文检查

c++ - 定义一个类的成员函数?

c# - 套接字代理服务器

r - R Markdown 报告中的中心DT数据表