On Tue, Jan 26, 2016 at 4:24 PM, Robert Sherry <rsher...@comcast.net> wrote: > > Thank you for the response. As expected, the following expression worked: > df[order(df$x),]
This says to sort the rows, and leave the columns alone. Subsetting a 2-dimensional object is via [rows, columns] > I would expect the following expression to work also: > df[order(df$x)] This does something a bit unexpected, and what it does depends on whether you have a data frame or matrix. > mydf <- data.frame(A=1:3, B=4:6) > mydf[2, ] # row 2 A B 2 2 5 > mydf[, 2] # col 2 [1] 4 5 6 > mydf[2] # ??? B 1 4 2 5 3 6 A data frame is "really" a list of columns, so giving a single value returns that column. > mymat <- as.matrix(mydf) > mymat[2, ] # row 2 A B 2 5 > mymat[, 2] # col 2 [1] 4 5 6 > mymat[2] # ??? [1] 2 But for a matrix, it returns that element, starting at the top left and working down rows first. So it's a really good idea to not subset your rectangular objects that way, as it may eventually bite you. > However it does not. That is, the comma is needed. Please tell me why the > comma is there. > > Thanks > Bob > On 1/26/2016 8:19 AM, S Ellison wrote: >>> >>> On 23.01.2016 01:21, Robert Sherry wrote: >>>> >>>> In R, I run the following commands: >>>> df = data.frame( x=runif(10), y=runif(10) ) >>>> df2 = df[order(x),] >>> >>> You use another x from your workspace, you actually want to >>> >>> >>> df2 = df[order(df[,"x"]),] >> >> or >> df[order(df$x),] >> >> And just to prevent yet more confusion, you might also want to avoid 'df' >> as a name. 'df' is the function that returns the density of the F >> distribution ... >> >> S Ellison >> >> ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.