From: Herve Pages <hpages_at_fhcrc.org>

Date: Fri 03 Nov 2006 - 04:46:01 GMT

R-devel@r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri Nov 03 21:32:20 2006

Date: Fri 03 Nov 2006 - 04:46:01 GMT

Hi again,

The man page for 'as.matrix' says:

'as.matrix' is a generic function. The method for data frames will convert any non-numeric/complex column into a character vector using 'format' and so return a character matrix, except that all-logical data frames will be coerced to a logical matrix.

It's true that "all-logical data frames will be coerced to a logical matrix":

* > fourLogicals <- 2:5>3
*

> df1 <- data.frame(a=fourLogicals)

> storage.mode(as.matrix(df1))

[1] "logical"

Otherwise it's not true that 'as.matrix' will return a character matrix:

* > fourInts <- 2:-1
*

> df2 <- data.frame(a=fourLogicals, b=fourInts)

> storage.mode(as.matrix(df2))

[1] "integer"

* > fourDoubles <- rep(pi,4)
*

> df3 <- data.frame(c=fourDoubles, a=fourLogicals, b=fourInts)

> storage.mode(as.matrix(df3))

[1] "double"

> fourComplexes <- (-1:2)+3i

> df4 <- data.frame(a=fourLogicals, d=fourComplexes, b=fourInts,

c=fourDoubles)

> storage.mode(as.matrix(df4))

[1] "complex"

If one column is of mode character, then 'as.matrix' will effectively return a character matrix:

> df5 <- data.frame(toto=c("a","bb"), titi=c(9,999))

> storage.mode(as.matrix(df5))

[1] "character"

Note that the doc says that "any non-numeric/complex column" will be passed thru 'format' which seems to be exactly the other way around:

> as.matrix(df5)

toto titi

1 "a" " 9"

2 "bb" "999"

Anyway why one would like to have the numeric values passed thru 'format' to start with?

This is in R-2.4.0 and recent R-devel.

Best,

H.

R-devel@r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri Nov 03 21:32:20 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Fri 03 Nov 2006 - 11:30:37 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel.
Please read the posting
guide before posting to the list.
*