Use drop = FALSE in your subscripting calls. That will retain "matrixness".
For example: y <- matrix(1:8, ncol = 2) is.matrix(y[-c(1,2,3),,drop = FALSE] More info is on the help page for "[". You can type: ?"[" to get it from the command line. Hope this helps, Matt Wiener -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Friday, April 07, 2006 9:16 AM To: Gabor Grothendieck Cc: Brian Quinif; [email protected]; [EMAIL PROTECTED] Subject: [R] strange matrix behaviour: is there a matrix with one row? Consider this: > y <- matrix(1:8, ncol=2) > is.matrix(y[-c(1,2),]) [1] TRUE > is.matrix(y[-c(1,2,3),]) [1] FALSE > is.matrix(y[-c(1,2,3,4),]) [1] TRUE It seems like an inconsistent behaviour: - with 2 or more rows we have a matrix - with 1 row we do not have a matrix and - with 0 rows we have a matrix again I just stumbled on this behaviour, because I had a problem with my program in which I have assumed that matrix with some rows removed is still a matrix, which seems to be mostly true, but it is not true if only one row is left. Comments? Suggestions? How to work around this problem - without to many "if" statements? Best regards, Ryszard ______________________________________________ [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 ______________________________________________ [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
