Dear R list,

I have discovered a seemingly peculiar feature when using a matrix to index itself (yes, this is strange code, which I have now modified to be more reasonable).

 #this makes sense
 s <- matrix(1:3,nrow=1)
 s[s]    #all three elements are shown

 #but when I try
 s <- matrix(1:2,nrow=1)
 s[1]     #fine, the first element is shown
 s[2]     #fine, the second element is shown
 s[s]     #just the second element is shown  -- this is peculiar


 #But doing it by columns works for both cases
 s <- matrix(1:3,ncol=1)
 s[s]    #all three elements are shown


 #and when I try the same problem down a column
 s <- matrix(1:2,ncol=1)
 s[1]     #fine

 s[2]     #fine

 s[s]     #this shows both elements  as would be expected

 #clearly since I have just one dimension, it would have been better to
 s <- 1:2
 s[s]   #which works as one would expect.

Or, using the array  function we get the same problem.

 s <- array(1:2,dim=c(1,2))
 s[s]
[1] 2
 s <- array(1:2,dim=c(2,1))
 s[s]
[1] 1 2


 sessionInfo()
R version 2.11.0 Under development (unstable) (2010-03-24 r51389)
i386-apple-darwin9.8.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

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

other attached packages:
[1] psych_1.0-87


I think this is unexpected behavior.

Best wishes,

Bill


--
William Revelle         http://personality-project.org/revelle.html
Professor                       http://personality-project.org
Department of Psychology             http://www.wcas.northwestern.edu/psych/
Northwestern University http://www.northwestern.edu/
Use R for psychology                       http://personality-project.org/r
It is 6 minutes to midnight     http://www.thebulletin.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