Re: [R] Is there anywhere recycle()?

2006-07-23 Thread Gabor Grothendieck
Try:

foo2 - function(x, a) cbind(x,a)[,2]


On 7/23/06, Gregor Gorjanc [EMAIL PROTECTED] wrote:
 Hello!

 I am writting a function, which should recycle one of its arguments if
 length of the argument is approprate i.e. something like

 foo - function(x, a)
 {
  n - length(x)
  if(length(a)  n) { # recycle a
oldA - a
a - vector(length=n)
a[1:n] - oldA
  }
  ## ...
  return(a)
 }

 foo(c(1, 2), a=c(1, 2))
 foo(c(1, 2), a=c(1))

 I am now wondering if there is any general/generic functions for such task.

 Thanks!

 --
 Lep pozdrav / With regards,
Gregor Gorjanc

 --
 University of Ljubljana PhD student
 Biotechnical Faculty
 Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
 Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

 SI-1230 Domzale tel: +386 (0)1 72 17 861
 Slovenia, Europefax: +386 (0)1 72 17 888

 --
 One must learn by doing the thing; for though you think you know it,
  you have no certainty until you try. Sophocles ~ 450 B.C.

 __
 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
 and provide commented, minimal, self-contained, reproducible code.


__
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
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Is there anywhere recycle()?

2006-07-23 Thread Gregor Gorjanc
Hi,

Gabor Grothendieck wrote:
 Try:
 
 foo2 - function(x, a) cbind(x,a)[,2]
 

thank you for this. It does work to some extent, but not much better
than mine foo.

foo2(c(1, 2, 3), a=1)
[1] 1 1 1

18:14:08
R foo2(c(1, 2, 3), a=c(1,2,3,4))
[1] 1 2 3 4
Warning message:
number of rows of result
is not a multiple of vector length (arg 1) in: cbind(1, x, a)

18:14:13
R foo2(c(1, 2, 3), a=c(1,2,3))
[1] 1 2 3

18:14:18
R foo2(c(1, 2, 3), a=c(1,2))
[1] 1 2 1
Warning message:
number of rows of result
is not a multiple of vector length (arg 2) in: cbind(1, x, a)



 On 7/23/06, Gregor Gorjanc [EMAIL PROTECTED] wrote:
 Hello!

 I am writting a function, which should recycle one of its arguments if
 length of the argument is approprate i.e. something like

 foo - function(x, a)
 {
  n - length(x)
  if(length(a)  n) { # recycle a
oldA - a
a - vector(length=n)
a[1:n] - oldA
  }
  ## ...
  return(a)
 }

 foo(c(1, 2), a=c(1, 2))
 foo(c(1, 2), a=c(1))

 I am now wondering if there is any general/generic functions for such
 task.

 Thanks!

 -- 
 Lep pozdrav / With regards,
Gregor Gorjanc

 --
 University of Ljubljana PhD student
 Biotechnical Faculty
 Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
 Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

 SI-1230 Domzale tel: +386 (0)1 72 17 861
 Slovenia, Europefax: +386 (0)1 72 17 888

 --
 One must learn by doing the thing; for though you think you know it,
  you have no certainty until you try. Sophocles ~ 450 B.C.

 __
 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
 and provide commented, minimal, self-contained, reproducible code.



-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

__
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
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Is there anywhere recycle()?

2006-07-23 Thread Gabor Grothendieck
Here is another possibility:

rep(a, length = length(x))

On 7/23/06, Gregor Gorjanc [EMAIL PROTECTED] wrote:
 Hi,

 Gabor Grothendieck wrote:
  Try:
 
  foo2 - function(x, a) cbind(x,a)[,2]
 

 thank you for this. It does work to some extent, but not much better
 than mine foo.

 foo2(c(1, 2, 3), a=1)
 [1] 1 1 1

 18:14:08
 R foo2(c(1, 2, 3), a=c(1,2,3,4))
 [1] 1 2 3 4
 Warning message:
 number of rows of result
is not a multiple of vector length (arg 1) in: cbind(1, x, a)

 18:14:13
 R foo2(c(1, 2, 3), a=c(1,2,3))
 [1] 1 2 3

 18:14:18
 R foo2(c(1, 2, 3), a=c(1,2))
 [1] 1 2 1
 Warning message:
 number of rows of result
is not a multiple of vector length (arg 2) in: cbind(1, x, a)



  On 7/23/06, Gregor Gorjanc [EMAIL PROTECTED] wrote:
  Hello!
 
  I am writting a function, which should recycle one of its arguments if
  length of the argument is approprate i.e. something like
 
  foo - function(x, a)
  {
   n - length(x)
   if(length(a)  n) { # recycle a
 oldA - a
 a - vector(length=n)
 a[1:n] - oldA
   }
   ## ...
   return(a)
  }
 
  foo(c(1, 2), a=c(1, 2))
  foo(c(1, 2), a=c(1))
 
  I am now wondering if there is any general/generic functions for such
  task.
 
  Thanks!
 
  --
  Lep pozdrav / With regards,
 Gregor Gorjanc
 
  --
  University of Ljubljana PhD student
  Biotechnical Faculty
  Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
  Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si
 
  SI-1230 Domzale tel: +386 (0)1 72 17 861
  Slovenia, Europefax: +386 (0)1 72 17 888
 
  --
  One must learn by doing the thing; for though you think you know it,
   you have no certainty until you try. Sophocles ~ 450 B.C.
 
  __
  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
  and provide commented, minimal, self-contained, reproducible code.
 


 --
 Lep pozdrav / With regards,
Gregor Gorjanc

 --
 University of Ljubljana PhD student
 Biotechnical Faculty
 Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
 Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

 SI-1230 Domzale tel: +386 (0)1 72 17 861
 Slovenia, Europefax: +386 (0)1 72 17 888

 --
 One must learn by doing the thing; for though you think you know it,
  you have no certainty until you try. Sophocles ~ 450 B.C.
 --


__
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
and provide commented, minimal, self-contained, reproducible code.