[英]R - sort function changes the matrix
我想根据其他列的行总和的等级对矩阵的一列进行排序。 所以我用这段代码:
for(j in 1:d) {
X[,j]=sort(X[,j],decreasing=TRUE)[rank(rowSums(X[,c(1:d)[-j]]))]
}
但是这段代码改变了我只想重新排列的列的值。 当行总和相等时,第j列的值也将相等,尽管事实上在原始列中每个值只有一次。 一个例子:
如何避免这个问题?
谢谢
希望这可以帮助!
#sample data
x <- matrix(c(1,1,1,2,2,2,3,3,3), nrow=3, ncol=3, byrow=T)
#if you want to sort by row-sum of 2nd & 3rd column
x[order(rowSums(x[,-1]), decreasing = T),]
#if you want to sort by row-sum of 1st & 2nd column
x[order(rowSums(x[,-3]), decreasing = T),]
所以最后的循环可能是
x <- matrix(c(1,1,1,2,2,2,3,3,3), nrow=3, ncol=3,byrow=T)
X <- x
for(j in 1:ncol(x)) {
X[,j]=x[order(rowSums(x[,-j]), decreasing = T),j]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.