[R] Add row to data frame
Pascal A. Niklaus
Pascal.Niklaus at unibas.ch
Mon Dec 8 14:59:32 CET 2003
Martin Maechler wrote:
>>>>>>"Pascal" == Pascal A Niklaus <Pascal.Niklaus at unibas.ch>
>>>>>> on Mon, 08 Dec 2003 11:47:02 +0100 writes:
>>>>>>
>>>>>>
>
> Pascal> Hi all, is there an easy way to build up a data
> Pascal> frame by sequentially adding individual rows?
>
>yes, pretty easy, but usually not recommended because quite
>inefficient.
>
>rbind() does work with data frames in the cases we know.
>Have a look at help(rbind.data.frame)
>
>
> Pascal> The data frame consists of numeric and character
> Pascal> columns. I thought of rbind, but I ended up with
> Pascal> numeric values for the character columns.
>
>We'd need to see [i.e give a reproducible example!]
>how you "ended up with numeric values for the character
>columns" -- which I guess were *factor* instead of character ?
>
>
Yes, there was a factor... There's one problem left, though... The row
names are 1, 11, 111 etc, instead of 1,2,3...
> df <- NULL;
>
> df <- rbind(df,data.frame(A=1,B="abc",C=rnorm(1)))
> df <- rbind(df,data.frame(A=1,B="abc",C=rnorm(1)))
> df <- rbind(df,data.frame(A=1,B="abc",C=rnorm(1)))
> df
A B C
1 1 abc 1.3540030
11 1 abc -0.7229597
111 1 abc -0.4922653
Of course, I can do a attr(df,"row.names") <- 1:3 at the end, but is
there an easier way? Ideally, I would like to name the row already when
adding it to the data frame. Is there another way than setting the
row.names attribute "manually" with the attr command?
Pascal
More information about the R-help
mailing list