[R] Splitting vector into individual elements
Liaw, Andy
andy_liaw at merck.com
Wed Sep 15 23:54:18 CEST 2004
> From: Liaw, Andy
>
> > From: Paul Roebuck
> >
> > On Wed, 15 Sep 2004, Peter Dalgaard wrote:
> >
> > > Paul Roebuck <roebuck at odin.mdacc.tmc.edu> writes:
> > >
> > > > Is there a means to split a vector into its individual
> > > > elements without going the brute-force route for arguments
> > > > to a predefined function call?
> > > >
> > > > offred.rgb <- c(1, 0, 0) * 0.60;
> > > >
> > > > ## Brute force style
> > > > offred.col <- rgb(offred.rgb[1],
> > > > offred.rgb[2],
> > > > offred.rgb[3],
> > > > names = "offred")
> > > > ## Desired style
> > > > offred.col <- rgb(silver.bullet(offred.rgb),
> > > > names = "offred")
> > >
> > > The closest is probably this:
> > >
> > > offred.col <- do.call("rgb", c(as.list(offred.rgb),
> > > list(names="offred")))
> >
> > Everyone offered 'do.call' as the solution. While that
> > works, is it to say that there is no means of expanding
> > the expression as an argument to the original function?
>
> What would be the point? That's what do.call() does for you
> internally.
Is this what you're after?
> toCall <- c(as.name("rgb"), as.list(offred.rgb), names="offred")
> toCall
[[1]]
rgb
[[2]]
[1] 0.6
[[3]]
[1] 0
[[4]]
[1] 0
$names
[1] "offred"
> toCall <- as.call(toCall)
> toCall
rgb(0.6, 0, 0, names = "offred")
> eval(toCall)
[1] "#990000"
Andy
> Andy
>
> > > (ever read/seen The Handmaid's Tale, btw?)
> > >
> >
> > Not yet. Though renaming my sample variable 'off.red.col'
> > would avoid future confusion with oppressed handmaids.
> >
> > ----------------------------------------------------------
> > SIGSIG -- signature too long (core dumped)
> >
> > ______________________________________________
> > R-help at 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
> >
> >
>
> ______________________________________________
> R-help at 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
>
>
> --------------------------------------------------------------
> ----------------
> Notice: This e-mail message, together with any attachments,
> contains information of Merck & Co., Inc. (One Merck Drive,
> Whitehouse Station, New Jersey, USA 08889), and/or its
> affiliates (which may be known outside the United States as
> Merck Frosst, Merck Sharp & Dohme or MSD and in Japan, as
> Banyu) that may be confidential, proprietary copyrighted
> and/or legally privileged. It is intended solely for the use
> of the individual or entity named on this message. If you
> are not the intended recipient, and have received this
> message in error, please notify us immediately by reply
> e-mail and then delete it from your system.
> --------------------------------------------------------------
> ----------------
>
More information about the R-help
mailing list