Re: [R] Function (x) as consecutive values

2006-05-18 Thread Jacques VESLOT
?cumsum

  system.time({ z - NULL ; for (i in 1:1000) z - c(z, sum((1:i)**2)) })
[1] 0.04 0.00 0.04   NA   NA
  system.time( zz - cumsum((1:1000)**2) )
[1]  0  0  0 NA NA
  all.equal(z,zz)
[1] TRUE

---
Jacques VESLOT

CNRS UMR 8090
I.B.L (2ème étage)
1 rue du Professeur Calmette
B.P. 245
59019 Lille Cedex

Tel : 33 (0)3.20.87.10.44
Fax : 33 (0)3.20.87.10.31

http://www-good.ibl.fr
---


Paul Chatfield a écrit :
 Hi - I'm trying to avoid using a 'for' loop due to inefficiency and instead 
 use a function (and ultimately tapply as I'm working on a matrix) but I can't 
 figure out how to get 'function' to take the variables as anything other than 
 vectors for example

   aa-0
   x-1:4
   test.fun-function(x)
   {aa-(x*x +aa) 
   return(aa)}
   test.fun(1:4)

   This code returns 'aa' as 1 4 9 16, but I'd like it to return aa as 1 5 14 
 30 taking into consideration that I've just calculated aa for x=1.  Aside 
 from using loops, is there not a simple way of telling R to work out x for 
 consecutive values?

   thanks

   Paul Chatfield

 
 Send instant messages to your online friends http://uk.messenger.yahoo.com 
   [[alternative HTML version deleted]]
 
 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


Re: [R] Function (x) as consecutive values

2006-05-18 Thread Paul Chatfield
Thanks for your reply, though this still wouldn't work with a function for 
example, starting code like below fails because x is read as a vector as 
opposed to doing it for x=1 then x=2 - is there any way of tweaking the code 
easily, or do I just resign myself to for loops to do that?
   
  x-1:4
  trial- function(x)
  {xx-matrix(runif(20), 2, 10)
  if (xx[1,x]0.5) { ...}
   
  Thanks
   
  Paul
  

Jacques VESLOT [EMAIL PROTECTED] wrote:
  ?cumsum

 system.time({ z - NULL ; for (i in 1:1000) z - c(z, sum((1:i)**2)) })
[1] 0.04 0.00 0.04 NA NA
 system.time( zz - cumsum((1:1000)**2) )
[1] 0 0 0 NA NA
 all.equal(z,zz)
[1] TRUE

---
Jacques VESLOT

CNRS UMR 8090
I.B.L (2ème étage)
1 rue du Professeur Calmette
B.P. 245
59019 Lille Cedex

Tel : 33 (0)3.20.87.10.44
Fax : 33 (0)3.20.87.10.31

http://www-good.ibl.fr
---


Paul Chatfield a écrit :
 Hi - I'm trying to avoid using a 'for' loop due to inefficiency and instead 
 use a function (and ultimately tapply as I'm working on a matrix) but I can't 
 figure out how to get 'function' to take the variables as anything other than 
 vectors for example
 
 aa-0
 x-1:4
 test.fun-function(x)
 {aa-(x*x +aa) 
 return(aa)}
 test.fun(1:4)
 
 This code returns 'aa' as 1 4 9 16, but I'd like it to return aa as 1 5 14 30 
 taking into consideration that I've just calculated aa for x=1. Aside from 
 using loops, is there not a simple way of telling R to work out x for 
 consecutive values?
 
 thanks
 
 Paul Chatfield
 
 

 [[alternative HTML version deleted]]
 
 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
 



[[alternative HTML version deleted]]

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Re: [R] Function (x) as consecutive values

2006-05-18 Thread Jacques VESLOT
sorry, don't understand your problem...
i think it's better to use matrices directly or faster funtions;
but sapply(1:4, function(x) ...) can do the job easily instead of 'for' loops.

---
Jacques VESLOT

CNRS UMR 8090
I.B.L (2ème étage)
1 rue du Professeur Calmette
B.P. 245
59019 Lille Cedex

Tel : 33 (0)3.20.87.10.44
Fax : 33 (0)3.20.87.10.31

http://www-good.ibl.fr
---


Paul Chatfield a écrit :
 Thanks for your reply, though this still wouldn't work with a function 
 for example, starting code like below fails because x is read as a 
 vector as opposed to doing it for x=1 then x=2 - is there any way of 
 tweaking the code easily, or do I just resign myself to for loops to do 
 that?
  
 x-1:4
 trial- function(x)
 {xx-matrix(runif(20), 2, 10)
 if (xx[1,x]0.5) { ...}
  
 Thanks
  
 Paul
 
 
 */Jacques VESLOT [EMAIL PROTECTED]/* wrote:
 
 ?cumsum
 
   system.time({ z - NULL ; for (i in 1:1000) z - c(z,
 sum((1:i)**2)) })
 [1] 0.04 0.00 0.04 NA NA
   system.time( zz - cumsum((1:1000)**2) )
 [1] 0 0 0 NA NA
   all.equal(z,zz)
 [1] TRUE
 
 ---
 Jacques VESLOT
 
 CNRS UMR 8090
 I.B.L (2ème étage)
 1 rue du Professeur Calmette
 B.P. 245
 59019 Lille Cedex
 
 Tel : 33 (0)3.20.87.10.44
 Fax : 33 (0)3.20.87.10.31
 
 http://www-good.ibl.fr
 ---
 
 
 Paul Chatfield a écrit :
   Hi - I'm trying to avoid using a 'for' loop due to inefficiency
 and instead use a function (and ultimately tapply as I'm working on
 a matrix) but I can't figure out how to get 'function' to take the
 variables as anything other than vectors for example
  
   aa-0
   x-1:4
   test.fun-function(x)
   {aa-(x*x +aa)
   return(aa)}
   test.fun(1:4)
  
   This code returns 'aa' as 1 4 9 16, but I'd like it to return aa
 as 1 5 14 30 taking into consideration that I've just calculated aa
 for x=1. Aside from using loops, is there not a simple way of
 telling R to work out x for consecutive values?
  
   thanks
  
   Paul Chatfield
  
  
   Send instant messages to your online friends
 http://uk.messenger.yahoo.com
   [[alternative HTML version deleted]]
  
   __
   R-help@stat.math.ethz.ch mailing list
   https://stat.ethz.ch/mailman/listinfo/r-help
   PLEASE do read the posting guide!
 http://www.R-project.org/posting-guide.html
  
 
 
 Send instant messages to your online friends http://uk.messenger.yahoo.com


__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html