Well documented in ?as.matrix.

Ignore my previous post.

On Wed, 4 Nov 2009, Greg Snow wrote:

The apply function was meant to work on matrices and arrays, when you use it on 
a data frame, the frame is first converted to a matrix.  Since your data frame 
has columns of different modes, the logical column is converted to character 
and the matrix is of the single mode character.  That is what you are seeing.

--
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.s...@imail.org
801.408.8111

-----Original Message-----
From: r-devel-boun...@r-project.org [mailto:r-devel-boun...@r-
project.org] On Behalf Of Adrian Dragulescu
Sent: Wednesday, November 04, 2009 12:45 PM
To: r-devel
Subject: [Rd] inconsistent behavior for logical vectors when using
apply (" TRUE")


Hello,

X <- data.frame(letters=letters[1:3], flag=c(TRUE, FALSE, TRUE))
X
   letters  flag
1       a  TRUE
2       b FALSE
3       c  TRUE
apply(X, 1, as.list)
[[1]]
[[1]]$letters
[1] "a"

[[1]]$flag
[1] " TRUE"


[[2]]
[[2]]$letters
[1] "b"

[[2]]$flag
[1] "FALSE"


[[3]]
[[3]]$letters
[1] "c"

[[3]]$flag
[1] " TRUE"

Notice how TRUE becomes " TRUE" and FALSE becomes "FALSE".  Not sure
why
TRUE gets an extra whitespace in front.

Checked with R-2.10.0, but can reproduce the behavior as far back as
R-2.8.1.

Adrian Dragulescu

sessionInfo()
R version 2.10.0 (2009-10-26)
i386-pc-mingw32

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United
States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] tools_2.10.0

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to