[R] Alternative to apply in base R
jdnewmil at dcn.davis.ca.us
Tue Nov 8 22:02:25 CET 2016
Log-sum-antilog is faster than apply by several times, but vector multiplication in a for loop as David and Chuck have suggested is several times faster than that.
Sent from my phone. Please excuse my brevity.
On November 8, 2016 12:23:04 PM PST, "Doran, Harold" <HDoran at air.org> wrote:
>It¹s a good suggestion. Multiplication in this case is over 7 columns
>the data, but the number of rows is millions. Unfortunately, the values
>are negative as these are actually gauss-quad nodes used to evaluate a
>colSums is better than something like apply(dat, 2, sum); I was hoping
>there was something similar to colSums/rowSums using prod().
>On 11/8/16, 3:00 PM, "Fox, John" <jfox at mcmaster.ca> wrote:
>>If the actual data with which you're dealing are non-negative, you
>>log all the values, and use colSums() on the logs. That might also
>>the advantage of greater numerical accuracy than multiplying millions
>>numbers. Depending on the numbers, the products may be too large or
>>to be represented. Of course, logs won't work with your toy example,
>>where rnorm() will generate values that are both negative and
>>I hope this helps,
>>John Fox, Professor
>>Canada L8S 4M4
>>From: R-help [r-help-bounces at r-project.org] on behalf of Doran, Harold
>>[HDoran at air.org]
>>Sent: November 8, 2016 10:57 AM
>>To: r-help at r-project.org
>>Subject: [R] Alternative to apply in base R
>>Without reaching out to another package in R, I wonder what the best
>>is to speed enhance the following toy example? Over the years I have
>>become very comfortable with the family of apply functions and
>>not good at finding an improvement for speed.
>>This toy example is small, but my real data has many millions of rows
>>the same operations is repeated many times and so finding a less
>>expensive alternative would be helpful.
>>mm <- matrix(rnorm(100), ncol = 10)
>>rn <- apply(mm, 1, prod)
>> [[alternative HTML version deleted]]
>>R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>PLEASE do read the posting guide
>>and provide commented, minimal, self-contained, reproducible code.
>R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>PLEASE do read the posting guide
>and provide commented, minimal, self-contained, reproducible code.
More information about the R-help