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) > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html