我是R / C ++的新手,并且编写了一个C ++程序,该程序可以模拟粒子在各种条件下的运动。为了分析结果数据,我决定使用R。
我遇到的问题是找到一种在C ++和R之间写入/读取数据的简便方法。我当前的(朴素的)解决方案是使用一个writedata.cpp
函数,该函数声明一个字符串列表,该字符串列表指定哪个目录我想将数据写入所有文本文件的名称,然后一次将数据写入一个文件(通常调用用于处理每种数据类型的特定功能)。
在此之后,我需要笨拙地重复所有这些代码以及R脚本中的“魔术字符串”,以读取和处理数据。
模拟的基本对象是vector<vector<particle>>
,其尺寸通常约为5000 x 1000000。particle
本身看起来类似于以下内容:
struct particle2D {
point pos;
velocity vel;
//other observable data
};
最终,我希望我的writedata.cpp
函数更加灵活,以便我可以创建一个particle3D
,而不必编写很多特定的代码来处理额外的维度。简单地添加到上述结构中指示的“可观察数据”列表中也是如此。
我知道有一些方法可以将整个结构写入文件。但是,鉴于我正在收集的数据量,我不确定这是否是可行的方法。
问题:是否有某种方法可以从R中获取C ++对象/结构,而又不涉及上述相当笨拙的方法?
答案 0 :(得分:0)
您的问题以
结尾给出一个程序P,该程序生成一些数据D,以及如何在不同平台/语言之间有效地存储和管理D)。
,您已经说过您的“程序P”是C ++,所以您可能想看看Rcpp。原因如下:
给个机会吧。您可以在这里以及rcpp-devel列表上获得帮助-先订阅,然后再发布。