G'day Carl, On Mon, 23 Mar 2009 20:11:19 -0400 Carl Witthoft <c...@witthoft.com> wrote:
> >From: Wacek Kusnierczyk <Waclaw.Marcin.Kusnierczyk_at_idi.ntnu.no> > >Date: Sun, 22 Mar 2009 22:58:49 +0100 > > > >just for fun, you could do this with multiassignment, e.g., using > >the (highly experimental and premature!) rvalues: > > > source('http://miscell.googlecode.com/svn/rvalues/rvalues.r') > >if (TRUE) > > > c(df1, df2) := list(4:8, 9:13) > > > dput(df1) > > # 4:8 > > dput(df2) > > # 9:13 > > > ------- > Now THAT's what I call an overloaded operator! ^_^ > > But seriously: can someone explain to me what's going on in the > rvalues.r code? I tried a simple experiment, replacing ":=" with a > "colec" in the code, and of course the line > > c(df1, df2) colec list(4:8, 9:13) > > > just gives me a "syntax error" response. Clearly I need a pointer > to some documentation about how the colon and equals sign get > "special treatment somewhere inside R. Not sure why := gets a special treatment, perhaps because it is not a valid name and, hence, the parser deduces that it is an operator? IIRC, the traditional way to define your own operator is to bound the name by percentage signs, i.e. replacing ":=" by "%colec%" and then issuing the command c(df1, df2) %colec% list(4:8, 9:13) will work. Cheers, Berwin =========================== Full address ============================= Berwin A Turlach Tel.: +65 6516 4416 (secr) Dept of Statistics and Applied Probability +65 6516 6650 (self) Faculty of Science FAX : +65 6872 3919 National University of Singapore 6 Science Drive 2, Blk S16, Level 7 e-mail: sta...@nus.edu.sg Singapore 117546 http://www.stat.nus.edu.sg/~statba ______________________________________________ R-help@r-project.org 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.