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, Europe fax: +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, Europe fax: +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.