R:基于秩重新排列向量
假设我有上面的R:基于秩重新排列向量,r,R,假设我有上面的data.frame,每个条目都是内存项的等级。因此,对于第二行,MEMORY1的排名为1,MEMORY2的排名为2内存8的级别为7,以此类推 我想根据内存项的排名对data.frame的每一行重新排序 第1行将保持不变12345678 第2行应该是12345687,因为MEMORY8排在MEMORY7 第3行应该是123456 第4行应该是12346785 如何编写代码,以便在传入dat后,输出看起来像 > dput(dat) structure(list(MEMORY1
data.frame
,每个条目都是内存项的等级。因此,对于第二行,MEMORY1
的排名为1,MEMORY2
的排名为2<代码>内存8的级别为7,以此类推
我想根据内存项的排名对data.frame
的每一行重新排序
第1行将保持不变12345678
第2行应该是12345687
,因为MEMORY8
排在MEMORY7
第3行应该是123456
第4行应该是12346785
如何编写代码,以便在传入dat
后,输出看起来像
> dput(dat)
structure(list(MEMORY1 = c(1, 1, 1, 1), MEMORY2 = c(2, 2, 2,
2), MEMORY3 = c(3, 3, 3, 3), MEMORY4 = c(4, 4, 4, 4), MEMORY5 = c(5,
5, 5, 8), MEMORY6 = c(6, 6, 8, 5), MEMORY7 = c(7, 8, 6, 6), MEMORY8 = c(8,
7, 7, 7)), .Names = c("MEMORY1", "MEMORY2", "MEMORY3", "MEMORY4",
"MEMORY5", "MEMORY6", "MEMORY7", "MEMORY8"), row.names = c(NA,
4L), class = "data.frame")
> dat
MEMORY1 MEMORY2 MEMORY3 MEMORY4 MEMORY5 MEMORY6 MEMORY7 MEMORY8
1 1 2 3 4 5 6 7 8
2 1 2 3 4 5 6 8 7
3 1 2 3 4 5 8 6 7
4 1 2 3 4 8 5 6 7
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 2 3 4 5 6 7 8
[2,] 1 2 3 4 5 6 8 7
[3,] 1 2 3 4 5 7 8 6
[4,] 1 2 3 4 6 7 8 5
t(apply(dat, 1, order))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
1 1 2 3 4 5 6 7 8
2 1 2 3 4 5 6 8 7
3 1 2 3 4 5 7 8 6
4 1 2 3 4 6 7 8 5