在包含NA的矩阵中查找每行中的最大值

时间:2016-07-31 13:24:15

标签: r matrix max na

当矩阵包含NA时,我试图找到矩阵中每行的最大值。

我尝试使用" qlcMatrix"中的函数rowMax()。包,但它没有处理NA(它给我回#34; NA"如果行包含至少一个NA值)。

2 个答案:

答案 0 :(得分:2)

你可以使用最大值如果您将行作为向量提供并使用max,请确保设置na.rm = TRUE。

以下是使用矢量的示例:

> x = c(2,4,6,10,1,5,NA)

> max(x,na.rm = TRUE)

[1] 10

以下是使用矩阵的示例:

> x = matrix(1:10,2,5)
> x
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10
> x[2,2] = NA
> x
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2   NA    6    8   10
> max(x[2,],na.rm = TRUE)
[1] 10

这是一个简单的for循环演示:

for(i in 1:nrow(x)){
    y[i] = max(x[i,],na.rm = TRUE)

}
> y
[1]  9 10

答案 1 :(得分:2)

索托斯'回答上面的工作。另请查看' apply'的文档。在基地R:

apply(your_matrix, 1, max, na.rm = TRUE)