я получаю «Ошибка: индекс вне границ», когда я использую mapply с функцией Rcpp:Rcpp ошибка: индекс вне границ
R:
mapply(fun, x = totPrimas, y = factorProjec, w = totCurvadf)
х, у и г являются данные кадры с одинаковыми размерами.
Rcpp:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector fun(const NumericVector x, const NumericVector y, const NumericVector w) {
NumericVector z(x.size());
z(0) = x(0) * y(0);
NumericVector c(x.size());
c(0) = x(0) * w(0);
for(int i = 1; i < x.size(); i++) {
c(i) = (c(i-1) + x(i)) * w(i);
z(i) = c(i) * y(i);
}
return z;
}
Что-то не так в коде? Большое спасибо.
Я не понимаю «х, у и г являются данные кадры с той же размеры. «Как это относится к вашему коду? – Roland
Я не вижу индекса, выходящего за пределы кода C++. Таким образом, проблема, вероятно, в том, что вы переходите к' fun' через 'mapply'. Следовательно, моя просьба для уточнения – Roland
Спасибо, я проверил вход, и вы правы. «w» - это матрица, я преобразовал ее в data.frame и хорошо работает. Спасибо! –