-1
我得到 「錯誤:索引越界」 當我使用mapply具有RCPP功能:RCPP錯誤:索引越界
R:
mapply(fun, x = totPrimas, y = factorProjec, w = totCurvadf)
x,y和z是數據尺寸相同的框架。
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;
}
是一些錯誤的代碼?非常感謝。
我不明白「x,y和z是數據與同一幀維度「。這與你的代碼有什麼關係? – Roland
我看不到索引超出了C++代碼的範圍,所以,這個問題可能是你通過'mapply'傳遞給'fun'的原因。爲了澄清 – Roland
謝謝,我檢查了輸入,你是對的。「w」是一個矩陣,我將它轉換爲data.frame並且工作正常,謝謝! –