基于多列的数据表排序

时间:2018-10-26 17:53:20

标签: r sorting data.table

请考虑以下数据表:

DT <- data.table(a=c(1,2,4,3,5), b=c(3:5,NA,2), c=c(2,1,NA,NA,3)) 
DT
   a  b  c
1: 1  3  2
2: 2  4  1
3: 4  5 NA
4: 3 NA NA
5: 5  2  3

我想根据第3列然后第1列对行进行排序。我可以使用:

DT[order(DT[,3],DT[,1])]

   a  b  c
1: 2  4  1
2: 1  3  2
3: 5  2  3
4: 3 NA NA
5: 4  5 NA

但是,如果DT有很多列,并且可以说我想根据第1到第i列对它们进行排序,那么将其写为:

DT[order(DT[,1], DT[,2], DT[,3], ... DT[,i])]

相反,我想将列索引作为向量提供(见下文):

DT[order(DT[,c(1:i)])]

但是,它不符合我的预期,输出为:

DT[order(DT[,c(3,1)])]

     a  b  c
 1:  2  4  1
 2: NA NA NA
 3:  1  3  2
 4: NA NA NA
 5:  5  2  3
 6: NA NA NA
 7: NA NA NA
 8: NA NA NA
 9:  4  5 NA
10:  3 NA NA

有人建议我如何解决该问题吗?谢谢!

1 个答案:

答案 0 :(得分:3)

在指定GestureDetector( onTap: onTapFunction, child: Row(), )

之后,我们可以将do.callorder一起使用
.SDcols