File: sort.R

package info (click to toggle)
r-cran-memisc 0.99.31.8.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 2,136 kB
  • sloc: ansic: 5,117; makefile: 2
file content (25 lines) | stat: -rw-r--r-- 1,003 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
sort.data.frame <- function(x,decreasing=FALSE,by=NULL,na.last=NA,...){
  if(!length(by))
    ii <- do.call(order,c(x,list(decreasing=decreasing,na.last=na.last)))
  else if(is.character(by))
    ii <- do.call(order,c(x[by],list(decreasing=decreasing,na.last=na.last)))
  else if(inherits(by,"formula")){
    bydata <- model.frame(formula=by,data=x,na.action=na.pass)
    bydata <- bydata[rev(all.vars(by))]
    ii <- do.call(order,c(bydata,list(decreasing=decreasing,na.last=na.last)))
  }
  x[ii,]
}

sort.data.set <- function(x,decreasing=FALSE,by=NULL,na.last=NA,...){
  if(!length(by))
    ii <- do.call(order,c(x,list(decreasing=decreasing,na.last=na.last)))
  else if(is.character(by))
    ii <- do.call(order,c(x[by],list(decreasing=decreasing,na.last=na.last)))
  else if(inherits(by,"formula")){
    bydata <- model.frame(formula=by,data=x,na.action=na.pass)
    bydata <- bydata[rev(all.vars(by))]
    ii <- do.call(order,c(bydata,list(decreasing=decreasing,na.last=na.last)))
  }
  x[ii,]
}