用我自己的排序功能对多个数据框列进行排序

所以在我的代码中,我有一些向量,然后创建一个包含它们的数据框:

n<-10

a<-sample(0:9,n,replace=TRUE)

if(a%%2==0)
  {b<-sample(letters,n,replace=TRUE)
}else{ b<-sample(LETTERS,n,replace=TRUE)}

ch<-append(LETTERS,letters)

c<-sample(ch,n,replace=TRUE)

d<-sample(ch,n,replace=TRUE)

e<-sample(0:9,n,replace=TRUE)

f<-sample(0:9,n,replace=TRUE)

g<-sample(0:9,n,replace=TRUE)

h<-"R"

ifelse((e+f+g)%%3==0,i<-sample("podz",n,replace=TRUE),i<-sample(paste("000",(e+f+g)%%3,sep=""),replace=TRUE))

df<-data.frame(a,b,c,d,e,f,g,h,i,i,i,i)

现在,我尝试按b,c和d列对它们进行排序。我在这里找到了答案,可能最简单的答案是:

df[with(df, order(tolower(b),tolower(c),tolower(d))), ]

但是,我发现了一个尝试实现的插入排序功能:

insertionsort_function <- function(A){
  for (j in 2:length(A)) {
    key = A[j] 
    i = j - 1 
    while (i > 0 && A[i] > key) {
      A[(i + 1)] = A[i]
      i = i - 1 
    }
    A[(i + 1)] = key
  }
  A
} 

它可以与向量一起使用,但是我想知道,是否有一种方法可以通过给定的“ inserttionsort”函数对数据帧进行排序,就像我对上面的常规“ order”函数所做的一样?我想比较几件事,并且尝试了几种方法,但无法使其正常工作。或者,最终,也许我应该以某种方式将向量放入除数据帧以外的数据结构中,然后尝试?