If as.matrix distinguishes between the two options, then you could look at the code for that function and see how it's done.
Sarah On Tue, Dec 7, 2010 at 6:34 AM, Andreas Borg <andreas.b...@unimedizin-mainz.de> wrote: > Hi all, > > I just stumbled across the difference between explicit and 'automatic' row > names for data frames. Is there a quick way to find out if a data frame has > automatic row names or not? Of course I know this for data frames that I > create myself, but what if a function needs to extract this information for > an argument? > > The following example shows that this property is not easily visible: > >> # data frame with automatic row names >> df <- data.frame(a=1:2, b=3:4) >> # data frame with explicit row names >> df2 <- data.frame(a=1:2, b=3:4, row.names=1:2) >> # printing does not reveal any difference >> df > a b > 1 1 3 > 2 2 4 >> df2 > a b > 1 1 3 > 2 2 4 >> # both are considered equal >> all.equal(df, df2) > [1] TRUE >> identical(df, df2) > [1] TRUE >> # calling rownames gives the same result >> rownames(df) > [1] "1" "2" >> rownames(df2) > [1] "1" "2" >> # when converting to a matrix, it makes a difference >> as.matrix(df) > a b > [1,] 1 3 > [2,] 2 4 >> as.matrix(df2) > a b > 1 1 3 > 2 2 4 > > Thanks for any suggestion, > > Andreas > > -- > Andreas Borg > Medizinische Informatik > -- Sarah Goslee\ http://www.functionaldiversity.org ______________________________________________ R-help@r-project.org mailing list 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.