>>>>> "Duncan" == Duncan Murdoch <[EMAIL PROTECTED]> >>>>> on Tue, 18 Oct 2005 09:50:59 -0400 writes:
Duncan> On 10/18/2005 9:32 AM, [EMAIL PROTECTED] wrote: >> Dear Duncan, >> >> you are right. In both R 2.2.0 and 2.1.1 you get the same result. What has >> actually changed is the following: >> In R 2.1.1 >>> mat[1, , drop = FALSE][1] >> r1 >> 1 >> >> While in R 2.2.0 >>> mat[1, , drop = FALSE][1] >> [1] 1 Duncan> I don't agree with your suggestion. mat[1, , drop = FALSE] Duncan> is a 1x3 matrix, with both row and column Duncan> names. Indexing it by [1] says that you want to Duncan> treat it as a vector, and give the first element. Duncan> How could R know whether to keep the row or column Duncan> name for that [1,1] element? What should it do with Duncan> the expression Duncan> mat[1,1 , drop = FALSE][1] Duncan> ? Duncan> If you are really concerned about the names, you should use matrix Duncan> indexing in both places with drop = FALSE: >> mat[1, , drop = FALSE][1,1,drop=FALSE] Duncan> c1 Duncan> r1 1 Duncan> Duncan Murdoch yes, definitely. There's no bug here, and there was rather a bug in previous behavior. Just a simpler example {"for posteriority"}: > (M <- cbind(a=0:1, b=c(A=2, B=3))) a b A 0 2 B 1 3 > M[1,2, drop=FALSE] b A 2 > M[1,2] [1] 2 > M[2] ### treat M as vector -> lose names [1] 1 > M[2:3] [1] 1 2 > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel