[R] How to find out if a data frame has automatic row names?

Andreas Borg andreas.borg at unimedizin-mainz.de
Tue Dec 7 12:34:44 CET 2010


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

UNIVERSITÄTSMEDIZIN
der Johannes Gutenberg-Universität
Institut für Medizinische Biometrie, Epidemiologie und Informatik
Obere Zahlbacher Straße 69, 55131 Mainz
www.imbei.uni-mainz.de

Telefon +49 (0) 6131 175062
E-Mail: borg at imbei.uni-mainz.de

Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der
richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den
Absender und löschen Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe
dieser Mail und der darin enthaltenen Informationen ist nicht gestattet.



More information about the R-help mailing list