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
當然,我的榮幸。 –