[R] idiom for constructing data frame

Sarah Goslee sarah.goslee at gmail.com
Tue Mar 31 19:52:12 CEST 2015


I just snagged this from Duncan Murdoch's reply to the same question:

# Create an empty dataframe to hold the results
df <- data.frame(strat=NA, id=NA, pid=NA)[rep(1, length(sel)),]

This skips matrix(), but how to set the column names programmatically
within a function?

Sarah, still sure I'm missing something obvious


On Tue, Mar 31, 2015 at 1:46 PM, Sarah Goslee <sarah.goslee at gmail.com> wrote:
> Hi folks,
>
> I KNOW there has to be a way to do this more elegantly, but I
> consistently fail to come up with it, as I was just reminded while
> writing an example for a query on this list.
>
> What's a nifty way to construct a data frame of a given size? The only
> way I know of it to use matrix(), eg
>
> data.frame(matrix(NA, nrow=10, ncol=3))
>
> and then to set the colnames in a second step.
>
> This comes up a lot when pre-allocated a data frame before using a
> loop: I know the size and column names, but want an empty structure to
> fill later.
>
> Sarah
>

-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list