[R] idiom for constructing data frame

William Dunlap wdunlap at tibco.com
Tue Mar 31 20:55:08 CEST 2015


You can use structure() to attach the names to a list that is input to
data.frame.
E.g.,

dfNames <- c("First", "Second Name")
data.frame(lapply(structure(dfNames, names=dfNames),
function(name)rep(NA_real_, 5)))


Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Tue, Mar 31, 2015 at 11:37 AM, Sarah Goslee <sarah.goslee at gmail.com>
wrote:

> Hi,
>
> Duncan Murdoch suggested:
>
> > The matrix() function has a dimnames argument, so you could do this:
> >
> > names <- c("strat", "id", "pid")
> > data.frame(matrix(NA, nrow=10, ncol=3, dimnames=list(NULL, names)))
>
> That's a definite improvement, thanks. But no way to skip matrix()? It
> just seems unRlike, although since it's only full of NA values there
> are no coercion issues with column types or anything, so it doesn't
> hurt. It's just inelegant. :)
>
> Sarah
> --
> Sarah Goslee
> http://www.functionaldiversity.org
>
> ______________________________________________
> R-help at 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list