> 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
Предположим, что у меня выше data.frame
, и каждая запись является рангом элемента MEMORY. Таким образом, для второго ряда, MEMORY1
имел ранг 1, MEMORY2
имеет ранг 2, ... MEMORY8
имеет ранг 7 и т.д.R: перестраивающие векторы на основе ранга
Я хочу, чтобы изменить порядок каждой строки data.frame
на основе ранжирования элементов памяти.
Row 1 просто остаться один и тот же 1 2 3 4 5 6 7 8
Row 2 должна быть 1 2 3 4 5 6 8 7
потому что MEMORY8
занимает до того MEMORY7
Row 3 должен быть 1 2 3 4 5 7 8 6
Row 4 должны быть 1 2 3 4 6 7 8 5
Как могу ли я написать код, так что, как только я перейду в dat
, результат будет выглядеть примерно нг, как
[,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