通过以下方式转换 R 中的矩阵

transforming a matrix in R by

我想从之前的矩阵A中创建一个新的矩阵B,其中B中行和列的长度相同,每个位置对应于A的排名。 特别是,对于 A 中位置 [i,j] 的任意 x,我想找出有多少值大于 [i,j](其中 sum(A>x),当 x 是离散的时我可以找到它,但不适用于任何 x),然后除以矩阵 A 中的观察总数*变量。 我认为使用 apply 函数可以按照我的意愿创建矩阵 B,但我无法找到一种方法来为每个位置应用 "sum"(即 sum(A>x)/# of A中的职位 我想我可以使用 apply(A, c(1,2), FUN(X...)),但我不知道我可以使用什么功能。 感谢您的任何建议。

短版: matrix((length(M) - rank(M))/length(M), nrow=nrow(M), ncol=ncol(M))

长版:
length(M) 会给出矩阵中元素的数量。
length(M) - rank(M) 会给出大于每个元素的元素个数。
所以你想要 (length(M) - rank(M)) / length(M) 但格式化成像 M 这样的矩阵,所以

matrix((length(M) - rank(M))/length(M), nrow=nrow(M), ncol=ncol(M))