On 2010-12-07 03:34, Andreas Borg 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,


Check ?.row_names_info

Peter Ehlers

Andreas


______________________________________________
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.

Reply via email to