title: How to order my dataframe lexicographicaly
body: <p>I have a following data frame </p>
  
  <pre><code>a = data.frame(a=c(1,2,3,4,5,6,7),b=c(1,2,3,10,12,21,4),c=c(1,2,10,11,"X","Y",3))
  &gt; a
    a  b  c
  1 1  1  1
  2 2  2  2
  3 3  3 10
  4 4 10 11
  5 5 12  X
  6 6 21  Y
  7 7  4  3
  </code></pre>
  
  <p>I want to sort whole data frame in lexicographical order, so that the output (for example, column "c") should be like</p>
  
  <pre><code>&gt; a[,"c"]
  [1] 1  2  3 10 11  X  Y
  </code></pre>
  
  <p>I tried and I am geting different answer</p>
  
  <pre><code>indata &lt;- a[do.call(order,a[,c("c","a","b")]),]
  &gt; indata[,"c"]
  [1] 1  10 11 2  3  X  Y
  Levels: 1 10 11 2 3 X Y
  </code></pre>
  
  <p>I tried gtools, mixedorder package and worked fine on one column:</p>
  
  <pre><code>&gt; a[mixedorder(a$c),]
    a  b  c
  1 1  1  1
  2 2  2  2
  3 3  3 10
  4 4 10 11
  5 5 12  X
  6 6 21  Y
  7 7  4  3
  </code></pre>
  
  <p>but it doesn't work if I include multiple columns:</p>
  
  <pre><code>&gt; a[with(a,order(mixedorder(c),mixedorder(b),mixedorder(a))),]
    a  b  c
  1 1  1  1
  2 2  2  2
  4 4 10 11
  5 5 12  X
  6 6 21  Y
  7 7  4  3
  3 3  3 10
  </code></pre>
  
  <p>though I am expecting :</p>
  
  <pre><code>  a  b  c
  1 1  1  1
  2 2  2  2
  4 7  4  3
  5 3  3 10
  6 4 10 11
  7 5 12  X
  3 6 21  Y
  </code></pre>