0
参照でデータフレームを渡して、列を追加しようとしています。私の計画は、このように行を追加することです。Rcpp:参照によってデータフレームに行を追加します。
私のコードは、これまでは下記sourceCpp
とエラーなしでコンパイルされた - しかし、私はこのような機能を実行することはできません。
lst <- list("a"=c("aone", "atwo"), "b"=c("bone","btwo"))
mainFunc(lst)
これはmainFunc
が定義されていないので、私はと思われることを私に伝えますコードは何とか間違っています:
#include <Rcpp.h>
using namespace Rcpp;
class C
{
public:
void test(Rcpp::DataFrame& df, Rcpp::List y)
{
int n = y.size();
for(int i = 0; i<n; ++i)
{
List sublist = y[i];
int m = sublist.size();
for(int j = 0; j<m; ++j)
{
CharacterVector sublist_element = sublist[j];
df[sublist_element] = sublist_element;
}
}
}
};
// [[Rcpp::export]]
XPtr<C> mainFunc(Rcpp::List y)
{
XPtr<C> ptr(new C(), true);
DataFrame df;
ptr->test(df, y);
return(ptr);
}
だからmainFunc
でそれに値を追加/ mainFunc
でデータフレームを作成して追加することが可能でしょうか?
ありがとうございました。 'data.frame'の代わりに' List'を使う方が効率的ですか?または私が変換するC++のネイティブ構造ですか?私は最終的なサイズをあらかじめ知っていません:-( – N08
これを行うと(例えばRblpapiを参照)、 'std :: vector'を行単位で大きく変換し、' data.frame'を変換して作成します。 –
私は今、Rblpapiのソースファイルを見ていますが、かなりの数があります。この変換が起きる箇所を教えてください。 – N08