找到每列的最大值和最小值,然后找到每一行的最大值和最小值

Kos*_*kis 27 r max matrix minimum

我有这个矩阵:

a <- matrix(rnorm(1000 * 18, mean = 100, sd = sqrt(10)), 1000, 18)
Run Code Online (Sandbox Code Playgroud)

我想找到每列的最大值和最小值以及每一行的最大值和最小值.

Kos*_*kis 44

弄清楚了.

每列的最小值和最大值:

apply(a,2,min)
apply(a,2,max)
Run Code Online (Sandbox Code Playgroud)

每行的最小值和最大值:

apply(a,1,min)
apply(a,1,max)
Run Code Online (Sandbox Code Playgroud)

http://www.personality-project.org/r/r.commands.html找到了相关信息

  • 我如何添加`na.rm = TRUE`? (2认同)

edd*_*5br 5

请参阅matrixStats包装。您可以对列和行使用colMins(),rowMaxs()和这样的函数。

请参阅此答案:如何在 R 中的数据框中查找列的最高值?


Rom*_*man 5

你可以试试

apply(a, 1, range)
Run Code Online (Sandbox Code Playgroud)

将此与 一起使用t,可为您提供两列。第一个最小,第二个最大行。

head(t(apply(a, 1, range)))
         [,1]     [,2]
[1,] 95.75922 103.6956
[2,] 93.62636 106.3934
[3,] 92.70567 106.9190
[4,] 96.53577 104.4971
[5,] 96.61573 107.6691
[6,] 95.56239 105.5887
Run Code Online (Sandbox Code Playgroud)

对于列最大值,在应用函数中将 1 更改为 2。