0
我正在使用R。
我在我的数据帧(DT)中有两组列: R1,R2,...,R6和U1,U2,... U6。 R1和U1是相关的,R2和U2是相关的,等等。
当我排序(R1,...,R6),我还需要为(U1,...,U6),即以相同的顺序值时,我有:
如何根据R数据框中的另一组列对列的一组进行排序
R1 R2 R3 R4 R5 R6 U1 U2 U3 U4 U5 U6
0.1 0.5 0.9 0.1 0.2 0.5
0.1 0.2 0.3 0.4 0.5 0.6
欲将此变换:
R1 R2 R3 R4 R5 R6 U1 U2 U3 U4 U5 U6
0.1 0.5 0.2 0.5 0.1 0.9
0.3 0.5 0.2 0.6 0.4 0.1
这是我在做什么,但它采取非常长,因为DT有10万条记录。 列1:6 R1:R6和我通过U6在OU1存储U1的排序值:OU6
# This piece of code sorts R1 through R6
DT=cbind(DT, t(apply(-DT[,1:6] 1, sort)))
DT[,13:18]=-1*S_RU[,13:18]
#This piece of code sorts U1 through U6
for(i in 1:nrow(DT)){
x=as.numeric(DT[i,c("U1","U2","U3","U4","U5","U6")])
S_RU[i,c("OU6","OU5","OU4","OU3","OU2","OU1")]=x[order(-S_RU[i,1:6])]
}
非常感谢埃文。这工作超快 – Tecsanto
当然,我的荣幸。 –