[R-br] Extrair diagonais de Matriz ao selecionar um elemento.

Augusto Ribas ribas.aca em gmail.com
Quarta Janeiro 23 10:21:42 BRST 2013


Bom dia a todos, estou com uma duvida aqui.

Eu tenho varias matrizes dessa forma.

> exemplo
  A B C D
1 0 1 0 0
2 0 0 2 0
3 1 0 0 3
4 0 2 0 0

Aqui ela esta 4x4, mas ela pode ser de qualquer forma, não
necessariamente quadrada assim.

O maior numero que eu tenho ali dentro é 3.

Existe uma forma simples de obter a posição do 3?

Eu estava tentando o seguinte:

Obtinha o maior elemento
max(exemplo)

Depois olhava onde ele estava.
> which(exemplo==3)
[1] 15

Mas ele fala um número apenas, que ai tem que dividir o número de
colunas, tem alguma função que me retornaria a posição, qual linha e
qual coluna ele esta?
Tipo [3,4], e que seja independente se a matrix for diferente quanto
ao numero de linhas ou colunas?

A segunda duvida é, tem alguma forma simples de extrair a diagonal dos
números a partir do 3? Principalmente as posições dos elementos.
No exemplo eu gostaria do seguinte:

A diagonal do 3 assim:

 [1,2],[2,3],[3,4].

Que ai eu poderia obter  quais as colunas que estão nessa diagonal,
tipo B,C,D, e as linhas 1,2,3. Esse é o objetivo final, mas eu estou
apanhando para obter um jeito simples de extrair a posição do ultimo
elemento da diagonal ali na matriz, ou a posição dos elementos da
diagonal em si.

-- 
Grato
Augusto C. A. Ribas

Site Pessoal: http://recologia.wordpress.com/
Lattes: http://lattes.cnpq.br/7355685961127056


Mais detalhes sobre a lista de discussão R-br