Answering my own question: if I explicitly garbage collecte before the benchmark then 'index' always wins, which probably also answers the original question.
v<-rep(1:1000,1:1000); x<-5; gc(); benchmark(replications=200, columns=c("test","elapsed"), order="elapsed", which=length(which(x==v)), index=length(v[v==x]), sum=sum(v==x)) Allan On 19/06/09 16:51, Allan Engelhardt wrote: > When trying out a couple of different approaches to this problem I get > rather different answers between runs. Anybody know why? > > > library("rbenchmark") > > v<-rep(1:1000,1:1000); x<-5; benchmark(replications=200, > columns=c("test","elapsed"), order="elapsed", > which=length(which(x==v)), index=length(v[v==x]), sum=sum(v==x)) > test elapsed > 3 sum 2.513 > 2 index 5.512 > 1 which 6.712 > > v<-rep(1:1000,1:1000); x<-5; benchmark(replications=200, > columns=c("test","elapsed"), order="elapsed", > which=length(which(x==v)), index=length(v[v==x]), sum=sum(v==x)) > test elapsed > 3 sum 2.502 > 2 index 3.779 > 1 which 6.650 > > v<-rep(1:1000,1:1000); x<-5; benchmark(replications=200, > columns=c("test","elapsed"), order="elapsed", > which=length(which(x==v)), index=length(v[v==x]), sum=sum(v==x)) > test elapsed > 2 index 3.796 > 3 sum 5.808 > 1 which 6.633 > > This pattern appears to repeat (so on the next two runs "sum" will win > followed by "index" followed by "sum" twice followed by "index" ...) > > Allan. > > > > > On 19/06/09 14:55, Praveen Surendran wrote: >> Hi, >> >> >> >> I have a vector "v" and would like to find the number of occurrence of >> element "x" in the same. >> >> Is there a way other than, >> >> >> >> sum(as.integer(v==x)) or length(which(x==v)) >> >> >> >> to do the this. >> >> >> >> I have a huge file to process and do this. Both the above described >> methods >> are pretty slow while dealing with a large vector. >> >> Please have your comments. >> >> >> >> Praveen Surendran. >> >> >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.