>>>>> "Paul" == Paul Roebuck <[EMAIL PROTECTED]> >>>>> on Tue, 30 May 2006 16:04:14 -0500 (CDT) writes:
Paul> On Tue, 30 May 2006, Robert Lundqvist wrote: >> I have this typical problem of joining a number of vectors with similar >> names - a1, a2,..., a10 - which should be concatenated into one. Using >> c(a1,a2,a3,a4,a5,a6,a,a8,a9,a10) naturally works, but I would like to do >> it with less manual input. My attempts to use paste() gives a vector of >> the vector names, see below. The question is how to do the the >> concatenation? Any suggestions? >> >> paste("a",1:10,sep="") Paul> a1 <- c(5, 4) Paul> a2 <- 2 Paul> a3 <- 6:9 Paul> cmd <- sprintf("c(%s)", Paul> paste("a", 1:3, sep = "", collapse = ", ")) Paul> eval(parse(text = cmd)) Executive Summary: "Try not to use eval(parse(text = * )) " Excuse me, Paul, but the other replies to this message had better answers. If you do install.packages("fortunes") library("fortunes") fortune("answer is parse") You get a very notable advise (by Thomas Lumley) on why a solution using parse() very often ``stinks''. In the present example and quite a few other ones, the much better solution is to use get() [as the other replies in this thread do]. In a recent private e-mail, Brian Ripley has reminded me of the generic way to avoid eval(parse(text = * )) , namely via eval(substitute(f(A,B), list(A=.., B=..)) Martin Maechler, ETH Zurich ______________________________________________ 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