2015-04-24 5 views
1

У меня есть матрицаR - тестирование значений матрицы на основе вектора

blah <- structure(c(10L, 7L, 5L, 3L, 8L, 10L, 3L, 9L, 3L, 3L, 4L, 8L, 7L, 4L, 8L, 5L, 2L, 1L, 9L, 7L, 6L, 7L, 9L, 3L, 3L), .Dim = c(5L, 5L)) 

> blah 
    [,1] [,2] [,3] [,4] [,5] 
[1,] 10 10 4 5 6 
[2,] 7 3 8 2 7 
[3,] 5 9 7 1 9 
[4,] 3 3 4 9 3 
[5,] 8 3 8 7 3 

У меня есть набор векторов, соответствующих максимальных значений для каждого столбца.

max <- apply(blah,2,max) 
> max 
[1] 10 10 8 9 9 

Я хочу вернуть логический вектор на основе наибольшего значения в столбце

 [,1] [,2] [,3] [,4] [,5] 
[1,] T T F F F 
[2,] F F T F F 
[3,] F F F F T 
[4,] F F F T F 
[5,] F F T F F 

Я знаю, что могу реализовать цикл по столбцам, чтобы сделать это, но есть элегантный R-типа способ сделать это?

ответ

4
apply(blah,2,function(x) {x == max(x)}) 

Это просто ударило меня. Это так просто. Не могу поверить, что я не думал об этом раньше.

+1

вы можете ответить на свой вопрос. Интересно, можете ли вы проверить зеленый цвет слишком, это элегантное решение. –

Смежные вопросы