当矩阵包含NA时,我试图找到矩阵中每行的最大值。
我尝试使用" qlcMatrix"中的函数rowMax()。包,但它没有处理NA(它给我回#34; NA"如果行包含至少一个NA值)。
答案 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)