我觉得以下R代码的速度很好。有什么方法可以使用C ++提高速度吗?我觉得我的C ++代码没有那么快。

#R-code
> s<-5
> t<-2
> y<-c(1,2,3,4,5)
> r<-c(1,5,5,3,3)
>
> sindex<-r[r==s]
> tindex<-r[r==t]
>
>
> res<-sum(y[sindex])+sum(y[tindex])
>
> sindex
[1] 5 5
> tindex
numeric(0)
>
> res
[1] 10

#c++
res1=0; res2=0;
for(i=0;i<n;i++){
if(r[i]==s){
    res1=res1+y[s];
}
if(r[i]==t){
    res2=res2+y[t];
}
}
res=res1+res2

最佳答案

R中的矢量化(sum是矢量化函数)在后台运行C。通常足够快...

09-05 23:52