[Rd] R-devel: rownames of a data.frame
Martin Maechler
maechler at r-project.org
Tue Dec 5 18:20:12 CET 2006
Gregor Gorjanc <gregor.gorjanc <at> bfro.uni-lj.si> writes:
>
> Hello!
>
> Data.frames have new rownames funcionality, however in use of colnames<-
> in R-devel "changes" this. Here is the example:
>
> > df1 <- data.frame(letters[1:5])
> > attributes(df1)
> $names
> [1] "letters.1.5."
>
> $row.names
> [1] 1 2 3 4 5
>
> $class
> [1] "data.frame"
>
> > colnames(df1) <- "bla"
> > attributes(df1)
> $names
> [1] "bla"
>
> $row.names
> [1] "1" "2" "3" "4" "5"
>
> $class
> [1] "data.frame"
>
> ?rownames/colnames help page (R-devel) says that value is coerced to
> character, but why are rownames coerced to character if I assign
> colnames to a data.frame?
>
because colnames() and rownames() work via dimnames(), and so do
"colnames<-" and "rownames<-" ---
I think it would be unwise to change this, since it's well documented property
of these functions.
As you noted yourself, using names() and "names<-"
i.e.,
names(df1) <- "bla"
in the example above, is the recommended way for data frames and does not change
the rownames to character.
More information about the R-devel
mailing list