[Using R 2.2.0 on Windows XP; OK, OK, I will update soon!]
I have noticed some undesirable behaviour when applying
ifelse to a data frame. Here is my code:
A <- scan()
1.000000 0.000000 0.000000 0 0.00000
0.027702 0.972045 0.000253 0 0.00000
A <- matrix(A,nrow=2,ncol=5,byrow=T)
A == 0
ifelse(A==0,0,-A*log(A))
A <- as.data.frame(A)
ifelse(A==0,0,-A*log(A))
and this is the output:
> A <- scan()
1: 1.000000 0.000000 0.000000 0 0.00000
6: 0.027702 0.972045 0.000253 0 0.00000
11:
Read 10 items
> A <- matrix(A,nrow=2,ncol=5,byrow=T)
> A == 0
[,1] [,2] [,3] [,4] [,5]
[1,] FALSE TRUE TRUE TRUE TRUE
[2,] FALSE FALSE FALSE TRUE TRUE
> ifelse(A==0,0,-A*log(A))
[,1] [,2] [,3] [,4] [,5]
[1,] 0.00000000 0.00000000 0.000000000 0 0
[2,] 0.09934632 0.02756057 0.002095377 0 0
>
> A <- as.data.frame(A)
> ifelse(A==0,0,-A*log(A))
[[1]]
[1] 0.00000000 0.09934632
[[2]]
[1] NaN 0.02756057
[[3]]
[1] 0
[[4]]
[1] NaN NaN
[[5]]
[1] 0
[[6]]
[1] 0.00000000 0.09934632
[[7]]
[1] 0
[[8]]
[1] 0
[[9]]
[1] 0
[[10]]
[1] 0
>
Is this a bug or a feature? Can the behaviour be explained?
Regards, Murray Jorgensen
--
Dr Murray Jorgensen http://www.stats.waikato.ac.nz/Staff/maj.html
Department of Statistics, University of Waikato, Hamilton, New Zealand
Email: [EMAIL PROTECTED] Fax 7 838 4155
Phone +64 7 838 4773 wk Home +64 7 825 0441 Mobile 021 1395 862
______________________________________________
[email protected] 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.