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
에 dataframe를 작성하고 추가 할 수 있습니다?
감사합니다. Dirk. 'data.frame' 대신'List'를 사용하는 것이 더 효율적입니까? 또는 내가 변환하는 C++의 일부 기본 구조는 무엇입니까? 나는 최종 크기를 미리 알지 못한다 :-( – N08
우리가 이것을 할 때 (예를 들어 Rblpapi를 보라) 우리는'std :: vector'를 한 줄씩 늘리고 마지막에'data.frame'을 변환하여 만든다. –
지금 Rblpapi의 소스 파일을보고 있지만 꽤 많이 있습니다 -이 변환이 일어나는 곳으로 나를 가리켜 주시겠습니까? 미리 감사드립니다. – N08