You can make it as elegant as you want, e.g., make.empty.df <- function(nrow,ncol, names) { if(length(names) %% ncol != 0) stop("Lenght of names is not a multiple of the number of colums") data.frame(matrix(NA, nrow, ncol, dimnames = list(NULL, names))) }
Best, Ista On Tue, Mar 31, 2015 at 2:37 PM, Sarah Goslee <sarah.gos...@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@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. ______________________________________________ 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.