Re: [R] Faster matrix operation?

2010-06-01 Thread baptiste auguie
On 1 June 2010 11:34, Peter Ehlers  wrote:
> Or, for a very slight further reduction in time in
> the case of larger matrices/vectors:
>
>  as.vector(tcrossprod(V, xyzs))
>
> I mention this merely to remind new users of the
> excellent speed of [t]crossprod().
>
>  -Peter Ehlers

Thanks, I've been using t(x)%*%y for several years now, and had never
found out there was a faster and more straight-forward function for
this. Perhaps a link to [t]crossprod could be added on the help page
for ?"%*%".

Best,

baptiste

__
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.


Re: [R] Faster matrix operation?

2010-06-01 Thread Peter Ehlers

On 2010-06-01 0:16, bill.venab...@csiro.au wrote:

xyzs<- matrix(rnorm(3*10,0,1),ncol=3)

V<- c(2,3,4)
system.time(vx<- apply(t(xyzs) * V, 2 ,sum))

user  system elapsed
1.060.021.08


system.time(wx<- as.vector(xyzs %*% V))

user  system elapsed
   0   0   0

all.equal(vx, wx)

[1] TRUE


Or, for a very slight further reduction in time in
the case of larger matrices/vectors:

 as.vector(tcrossprod(V, xyzs))

I mention this merely to remind new users of the
excellent speed of [t]crossprod().

 -Peter Ehlers




?

-Original Message-
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
Behalf Of Remko Duursma
Sent: Tuesday, 1 June 2010 4:04 PM
To: r-help@r-project.org
Subject: [R] Faster matrix operation?

Dear R-helpers,

I have a three-column matrix with lots of rows:

xyzs<- matrix(rnorm(3*10,0,1),ncol=3)

# And I am multiplying it with some vector V, and summing the rows
(columns after t()) in this way:
V<- c(2,3,4)
system.time(vx<- apply(t(xyzs) * V, 2 ,sum))


Ok, this does not take long (0.9 sec on my machine), but I have to do
this lots of times, with frequently larger matrices.

Is there a way to significantly speed this up, apart from writing it
in Fortran or C and calling it from within R (which is what I am
planning unless there is an alternative)?


thanks,
Remko




__
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.


Re: [R] Faster matrix operation?

2010-05-31 Thread Bill.Venables
> xyzs <- matrix(rnorm(3*10,0,1),ncol=3)
> 
> V <- c(2,3,4)
> system.time(vx <- apply(t(xyzs) * V, 2 ,sum))
   user  system elapsed 
   1.060.021.08 
> 
> system.time(wx <- as.vector(xyzs %*% V))
   user  system elapsed 
  0   0   0 
> all.equal(vx, wx)
[1] TRUE
> 
? 

-Original Message-
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
Behalf Of Remko Duursma
Sent: Tuesday, 1 June 2010 4:04 PM
To: r-help@r-project.org
Subject: [R] Faster matrix operation?

Dear R-helpers,

I have a three-column matrix with lots of rows:

xyzs <- matrix(rnorm(3*10,0,1),ncol=3)

# And I am multiplying it with some vector V, and summing the rows
(columns after t()) in this way:
V <- c(2,3,4)
system.time(vx <- apply(t(xyzs) * V, 2 ,sum))


Ok, this does not take long (0.9 sec on my machine), but I have to do
this lots of times, with frequently larger matrices.

Is there a way to significantly speed this up, apart from writing it
in Fortran or C and calling it from within R (which is what I am
planning unless there is an alternative)?


thanks,
Remko



-
Remko Duursma
Research Lecturer

Centre for Plants and the Environment
University of Western Sydney
Hawkesbury Campus
Richmond NSW 2753

Dept of Biological Science
Macquarie University
North Ryde NSW 2109
Australia

Mobile: +61 (0)422 096908
www.remkoduursma.com

__
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.


[R] Faster matrix operation?

2010-05-31 Thread Remko Duursma
Dear R-helpers,

I have a three-column matrix with lots of rows:

xyzs <- matrix(rnorm(3*10,0,1),ncol=3)

# And I am multiplying it with some vector V, and summing the rows
(columns after t()) in this way:
V <- c(2,3,4)
system.time(vx <- apply(t(xyzs) * V, 2 ,sum))


Ok, this does not take long (0.9 sec on my machine), but I have to do
this lots of times, with frequently larger matrices.

Is there a way to significantly speed this up, apart from writing it
in Fortran or C and calling it from within R (which is what I am
planning unless there is an alternative)?


thanks,
Remko



-
Remko Duursma
Research Lecturer

Centre for Plants and the Environment
University of Western Sydney
Hawkesbury Campus
Richmond NSW 2753

Dept of Biological Science
Macquarie University
North Ryde NSW 2109
Australia

Mobile: +61 (0)422 096908
www.remkoduursma.com

__
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.