我有一个带有列名
的矩阵X.names(X) <- c('a', 'b', 'c', 'd')
a b c d
1 2 3 4
2 7 1 5
我需要对每一行进行排序并保留列名,以便排序矩阵中的每一行都有各自的列名:
a b c d
1 2 3 4
c a d b
1 2 5 7
我尝试为每行指定名称:
for(i in 1:2) {
X[i,] <- sort(X[i,])
names(X[i,]) <- names(sort(X[i,]))
}
但仍有原始列名。
答案 0 :(得分:2)
mylist = lapply(1:NROW(X), function(i) X[i, order(X[i,]), drop = FALSE])
mylist
#[[1]]
# a b c d
#[1,] 1 2 3 4
#[[2]]
# c a d b
#[1,] 1 2 5 7
数据强>
X = structure(c(1L, 2L, 2L, 7L, 3L, 1L, 4L, 5L),
.Dim = c(2L, 4L),
.Dimnames = list(NULL, c("a", "b", "c", "d")))