[R] Splitting vector into individual elements

Liaw, Andy andy_liaw at merck.com
Wed Sep 15 22:29:11 CEST 2004


do.call() is good for this, I believe:

> offred.rgb <- c(1, 0, 0) * 0.60
> offred.col <- do.call("rgb", c(as.list(offred.rgb), names="offred"))
> offred.col
[1] "#990000"

HTH,
Andy

> From: Paul Roebuck
> 
> 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")
> 
> Neither of my attempts gets it right.
> 
>     silver.bullet.try1 <- function(x) {
>         expr <- cat(x, sep = ",")
>         return(parse(text = expr))
>     }
> 
>     silver.bullet.try2 <- function(x) {
>         expr <- expression(cat(x, sep = ","))
>         return(eval(expr))
>     }
> 
> ----------------------------------------------------------
> 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
> 
>




More information about the R-help mailing list