> On Apr 4, 2016, at 9:22 AM, Janszen, Derek 
> <derek.jans...@precisionformedicine.com> wrote:
> 
> Hi,
> 
> I want to create a data frame similar to the following, but greatly scaled up:
> df <- data.frame(aaa= c("a","b","c"), integer(3), integer(3))
> names(df)[2:3] <- paste("var",1:2,sep="")
> which yields
>  aaa  var1  var2
> 1   a     0     0
> 2   b     0     0
> 3   c     0     0
> 

> setNames( data.frame( rep(list( 1:3), 5) ) , paste0("V", 1:5) )
  V1 V2 V3 V4 V5
1  1  1  1  1  1
2  2  2  2  2  2
3  3  3  3  3  3

Or:

> data.frame( c( list( 'a'=letters[1:3] ), rep(list('x'=integer(3) ), 5) ))
  a x x.1 x.2 x.3 x.4
1 a 0   0   0   0   0
2 b 0   0   0   0   0
3 c 0   0   0   0   0


Just replace the 3's and 5's with a number (possibly delivered via a named 
numeric vector of length-1) of your choosing.

-- 
David.

> I would not relish having to paste 'integer(3)' 5000 times :(
> 
> So (I figure) there must be a way to do this programmatically, something akin 
> to
> exp1 <- paste(rep("integer(3)",2),collapse=',')
> which looks like it might work:     "integer(3),integer(3)" , as in the 
> following
> df <- data.frame(aaa=xxx, eval(parse(text=exp1)))
> but this yields
> 
> Error in parse(text = exp1) : <text>:1:11: unexpected ','
> 
> 1: integer(3),
> 
>              ^
> 
> 
> Not sure just why this doesn't work (?parse does not help), but it's not 
> important right now.
> 
> I have used eval and parse in the past, but not in a way similar to what I'm 
> trying to do now.
> 
> 
> 
> exp1 <- rep("integer(3)",2) gives "integer(3)" "integer(3)"
> 
> and upon parse(text=exp1) gives expression(integer(3), integer(3))
> 
> which appears to be promising, and does not give an error in the following
> 
>        df <- data.frame(aaa=xxx, eval(parse(text=exp1)))
> 
> but alas, does not give the desired result
>  aaa eval.parse.text...exp1..
> 1   a                        0
> 2   b                        0
> 3   c                        0
> 
> 
> 
> 
> I'm guessing that only the last evaluation of the expression is being 
> evaluated, which I can understand.
> 
> I feel certain that what I want to accomplish can be done programmatically, 
> but am at a loss as to just how to do that.
> Chances are this has been covered before. If so, apologies.
> If not, can anyone point me to references with more info than the help pages, 
> or suggest a solution? :)
> 
> Thanks,
> Derek
> 
> Derek Janszen, PhD
> Statistician, Analytics
> 
> Precision for Medicine<http://www.precisionformedicine.com/>
> 8425 Progress Drive, Suite M | Frederick, MD 21701
> +1 240 415 6004 office
> 
> 
> 
> The information contained in this email and any attachments is confidential 
> and may be subject to copyright or other intellectual property protection. If 
> you are not the intended recipient, you are not authorized to use or disclose 
> this information, and we request that you notify us by reply mail or 
> telephone and delete the original message from your mail system.
> 
>       [[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.

David Winsemius
Alameda, CA, USA

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to