我想按照它的第二行对矩阵或数据框进行排序。 我找到了办法。
tt<-c(3,2,3,5,3,5,5,4,3,1,5,2,1,5,4,1,3,5,3,3)
ff<-matrix(tt,nrow=5)
gg<-t(ff)
nn<-gg[order(gg[,2],decreasing = T),]
ff<-t(nn)
ff
任何替代或建议?
答案 0 :(得分:4)
您不必转置矩阵以便按第二行对矩阵进行排序。根据列索引的第二行指定顺序也应该有效。
// Finds maximum value across entire array
var maxArrSingle = function(arr) {
return arr.reduce(
function(acc,val){
return Math.max(acc,val);
},
-Infinity);
}
// Find indices where array is at max
var maxArrIndexes = function(arr) {
var max = maxArrSingle(arr);
return arr.reduce(function(acc,val,idx) {
if (val >= max) acc.push(idx);
return acc;
},[]);
}
// demos
var arr = [10, 67, 100, 100];
console.log(maxArrIndexes(arr));
var arr = [-10, -67, -100, -100, -4000, -9, -90, -90 ];
console.log(maxArrIndexes(arr));
var arr = [];
console.log(maxArrIndexes(arr));
var arr = [0];
console.log(maxArrIndexes(arr));
var arr = [0,0];
console.log(maxArrIndexes(arr));