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.

Reply via email to