Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:基于秩重新排列向量_R - Fatal编程技术网

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