RCpp:期待单值错误
RCpp: expecting a single value error
我正在尝试构建一个包,其中包含一个使用 RCpp 执行简单卷积的函数。代码看起来像
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector conv_filter(NumericVector x, NumericVector c){
int T = x.size();
int M = (c.size()-1)/2;
int t, i;
NumericVector fx(T);
for(t=0; t<T; t++){
for(i=-M; i<M+1; i++){
if(t+i>=0 && t+i<T){
fx(t) += c(M+i)*x(t+i);
}
}
}
return fx;
}
在采购时工作正常,但当内置到包中时,我不断收到错误提示 "expecting a single value"。我想我犯了非常基本的错误,但即使阅读了相关主题,我也看不出它是从哪里来的。非常感谢您的帮助。
你的程序适合我:
R> Rcpp::sourceCpp("/tmp/hrcho.cpp")
R> conv_filter(1:4, 4:1)
[1] 7 16 25 24
R>
使用这个(只是缩进的)源代码:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector conv_filter(NumericVector x, NumericVector c){
int T = x.size();
int M = (c.size()-1)/2;
int t, i;
NumericVector fx(T);
for(t=0; t<T; t++){
for(i=-M; i<M+1; i++){
if(t+i>=0 && t+i<T){
fx(t) += c(M+i)*x(t+i);
}
}
}
return fx;
}
/*** R
conv_filter(1:4, 4:1)
*/
我正在尝试构建一个包,其中包含一个使用 RCpp 执行简单卷积的函数。代码看起来像
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector conv_filter(NumericVector x, NumericVector c){
int T = x.size();
int M = (c.size()-1)/2;
int t, i;
NumericVector fx(T);
for(t=0; t<T; t++){
for(i=-M; i<M+1; i++){
if(t+i>=0 && t+i<T){
fx(t) += c(M+i)*x(t+i);
}
}
}
return fx;
}
在采购时工作正常,但当内置到包中时,我不断收到错误提示 "expecting a single value"。我想我犯了非常基本的错误,但即使阅读了相关主题,我也看不出它是从哪里来的。非常感谢您的帮助。
你的程序适合我:
R> Rcpp::sourceCpp("/tmp/hrcho.cpp")
R> conv_filter(1:4, 4:1)
[1] 7 16 25 24
R>
使用这个(只是缩进的)源代码:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector conv_filter(NumericVector x, NumericVector c){
int T = x.size();
int M = (c.size()-1)/2;
int t, i;
NumericVector fx(T);
for(t=0; t<T; t++){
for(i=-M; i<M+1; i++){
if(t+i>=0 && t+i<T){
fx(t) += c(M+i)*x(t+i);
}
}
}
return fx;
}
/*** R
conv_filter(1:4, 4:1)
*/