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  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.
> >>
> >> __
> >> [email protected] 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  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.
> --
>

__
[email protected] 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  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.
>>
>> __
>> [email protected] 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  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.

__
[email protected] 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
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  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.
>
> __
> [email protected] 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.
>

__
[email protected] 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] Is there anywhere recycle()?

2006-07-23 Thread Gregor Gorjanc
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  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.

__
[email protected] 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.