set.seed(123)
a=rnorm(1000)
y=matrix(a,100,10)#将随机数列转化为100行10列的矩阵
S=apply(abs(y),1,sum)#计算每一行元素的绝对值之和
R=order(S,decreasing=TRUE)#排序,显示结果为元素位于的行号
#用一个函数操作
topK <- function (x,k) {
if (k <= dim(x)[1]) x[which(rank(apply(abs(x),1,sum))>(dim(x)[1]-k)),]
else
print("Err: the specified k is out of matrix dimension")
}
set.seed(123)
x<-matrix(rnorm(1000),100)
topK(x,10) #提取矩阵x按行和排列前 k=10 子矩阵
同样都是按行和由大到小的顺序抽取一部分矩阵的行,为什么上面的代码显示第49行的行和最大,而用函数操作,显示矩阵中第8行行和最大呢,请各位大神帮帮忙。