R 如何根据因子级别对数据框的行进行排序

R 如何根据因子级别对数据框的行进行排序,r,R,我有一个数据框 V1 V2 V3 V4 V5 V6 1 1-TPN21 2 A P <NA> <NA> 2 8NAPK1 1 P <NA> <NA> <NA> 3 ADR1 1 P <NA> <NA> <NA> 4 CCL5 1 P <NA> <NA> <NA> 5 CPHB3 1 P

我有一个数据框

        V1 V2 V3   V4   V5   V6
1  1-TPN21  2  A    P <NA> <NA>
2   8NAPK1  1  P <NA> <NA> <NA>
3     ADR1  1  P <NA> <NA> <NA>
4     CCL5  1  P <NA> <NA> <NA>
5    CPHB3  1  P <NA> <NA> <NA>
6     DFC2  1  P <NA> <NA> <NA>
7     dHRA  3  M   A    P  <NA>
8    DSPA6  2  P   P  <NA> <NA>
9   DUCA1A  1  A <NA> <NA> <NA>
10  NDAM32  4  A    P    P    P
11   NFDC2  1  M <NA> <NA> <NA>
12   ZDBA7  1  P <NA> <NA> <NA>
我想按照p,A,M的顺序对它进行排序,不包括前两列。预期结果是

        V1 V2 V3  V4  V5  V6
1  1-TPN21  2  P  A   <NA> <NA>
2   8NAPK1  1  P <NA> <NA> <NA>
3     ADR1  1  P <NA> <NA> <NA>
4     CCL5  1  P <NA> <NA> <NA>
5    CPHB3  1  P <NA> <NA> <NA>
6     DFC2  1  P <NA> <NA> <NA>
7     dHRA  3  P   A    M  <NA>
8    DSPA6  2  P   P  <NA> <NA>
9   DUCA1A  1  A <NA> <NA> <NA>
10  NDAM32  4  P    P    P    A
11   NFDC2  1  M <NA> <NA> <NA>
12   ZDBA7  1  P <NA> <NA> <NA>
有人能帮我吗。谢谢,您可以尝试使用边距=1申请按行订购

df1[-(1:2)] <- t(apply(df1[-(1:2)], 1, function(x) 
              x[order(factor(x, levels=c('P', 'A', 'M')))]))

df1
#       V1 V2 V3   V4   V5   V6
#1  1-TPN21  2  P    A <NA> <NA>
#2   8NAPK1  1  P <NA> <NA> <NA>
#3     ADR1  1  P <NA> <NA> <NA>
#4     CCL5  1  P <NA> <NA> <NA>
#5    CPHB3  1  P <NA> <NA> <NA>
#6     DFC2  1  P <NA> <NA> <NA>
#7     dHRA  3  P    A    M <NA>
#8    DSPA6  2  P    P <NA> <NA>
#9   DUCA1A  1  A <NA> <NA> <NA>
#10  NDAM32  4  P    P    P    A
#11   NFDC2  1  M <NA> <NA> <NA>
#12   ZDBA7  1  P <NA> <NA> <NA>

@我不这么认为。我错过了什么吗?@akrun你说得对。谢谢