As others have said, z[z[, 1] < 0, ] does it. Just in case you're wondering why your subset command won't work, str() is your friend (as is so often the case):
str(z) str(as.data.frame(z)) ## (I don't think that R has 'as.data.set') So z is a matrix with column *names* "x1", etc; as.data.frame(z) is a data.frame with *variables* named "x1" etc. If you really want to use subset(), then subset(z, z[, "x1"] < 0, select = <...>) will work, but I wouldn't use it. -Peter Ehlers DonDiego wrote:
Hi, I have a matrix of data values like the example bellow. I would like to extract a subset of the matrix for the values where the first column is negative. I am using the subset function. However, I am getting an error message that the conditional variable doe snot exist. For some reason, the subset operation only works if I transform the matrix to a data set using as.data.set(). The help indicates that the subset function can be applied to matrixes and data sets. I am wondering if anyone has seen a similar problem before. am I using the correct syntax? n = 15 m = 5 cnames = paste("x",1:m,sep="") rnames = 1:n z = matrix(rnorm(n*m),n,m,dimnames =list(rnames,cnames)) Thanks, Jorge test = subset(z,x1 < 0, select = c(cnames))
-- Peter Ehlers University of Calgary ______________________________________________ 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.