Re: [R] non-consing count

2013-01-04 Thread David Winsemius
On Jan 4, 2013, at 7:30 AM, Sam Steingold wrote: Hi, to count vector elements with some property, the standard idiom seems to be length(which): --8<---cut here---start->8--- x <- c(1,1,0,0,0) count.0 <- length(which(x == 0)

Re: [R] non-consing count

2013-01-04 Thread Suzen, Mehmet
On 4 January 2013 16:53, jim holtman wrote: > Is performance a concern? How often are you going to do it and what > other parts of your script also take longer? Why are you concerned > about allocating/discarding two vectors? I think Sam's question was about additional memory introduced by whi

Re: [R] non-consing count

2013-01-04 Thread Jorge I Velez
Hi Ista, I was doing about something similar when I saw your post, so I took your code and did some timings: > system.time(replicate(100, count.0 <- length(which(x == 0 user system elapsed 5.590 0.173 5.834 > system.time(replicate(100, count.1 <- sum(x == 0))) user syste

Re: [R] non-consing count

2013-01-04 Thread jim holtman
What is the concern if it works? you can also do sum(x==0) Is performance a concern? How often are you going to do it and what other parts of your script also take longer? Why are you concerned about allocating/discarding two vectors? On Fri, Jan 4, 2013 at 10:30 AM, Sam Steingold wrote: > H

Re: [R] non-consing count

2013-01-04 Thread Ista Zahn
Hi Sam, Here is one alternative, which is at least faster: system.time(count.0 <- length(which(x == 0))) system.time(count.1 <- sum(x == 0)) all.equal(count.0, count.1) Best, Ista On Fri, Jan 4, 2013 at 10:30 AM, Sam Steingold wrote: > Hi, > to count vector elements with some property, the sta

Re: [R] non-consing count

2013-01-04 Thread Suzen, Mehmet
My 2 cents: AFAIK both which and length are from C compiled code: http://cran.r-project.org/doc/manuals/r-release/R-ints.html#g_t_002eInternal-vs-_002ePrimitive so they must be quite efficient ie .Primitive and .Internal. Probably combination of this with a pattern in C would be more memory effi

[R] non-consing count

2013-01-04 Thread Sam Steingold
Hi, to count vector elements with some property, the standard idiom seems to be length(which): --8<---cut here---start->8--- x <- c(1,1,0,0,0) count.0 <- length(which(x == 0)) --8<---cut here---end--->8--- however, this approac