У меня есть список в R, что x < -list (c (1,2,3), c (4,5), c (5,5), c (6)). Я хочу ввести список в Rcpp и вернуть их как средний вектор, c (2, 4.5, 5, 6).
Я не уверен, как обрабатывать список в Rcpp. Я получил сообщение об ошибке, так что может кто-то проверить мой код?
library(inline)
fx = cxxfunction(signature(x='List'), body =
'
Rcpp::List xlist(x);
int n = xlist.size();
double res[n];
for(int i=0; i<n; i++) {
Rcpp NumericVector y(xlist[i]);
int m=y.size();
res[i]=0;
for(int j=0; j<m; j++){
res[i]=res[i]+y[j]
}
}
return(wrap(res));
'
, plugin='Rcpp')
x<-list(c(1,2,3), c(4,5), c(5,5), c(6))
fx(x)