Extrair diagonais de Matriz ao selecionar um elemento.

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

exemplo<-matrix(c(0,1,0,0,0,0,2,0,1,0,0,3,0,2,0,0),ncol=4,nrow=4,byrow=T, dimnames=list(c("1","2","3","4"),c("A","B","C","D"))) exemplo max(exemplo) which(exemplo==3) Esqueci o exemplo, desculpem. Em 23 de janeiro de 2013 09:21, Augusto Ribas <ribas.aca@gmail.com> escreveu:
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
-- Grato Augusto C. A. Ribas Site Pessoal: http://recologia.wordpress.com/ Lattes: http://lattes.cnpq.br/7355685961127056

Achei na internet... which(exemplo==max(exemplo), arr.ind=T) e dando o crédito devido<http://r.789695.n4.nabble.com/returning-the-largest-element-in-an-array-matrix-td795214.html> ... abç Manoel 2013/1/23 Augusto Ribas <ribas.aca@gmail.com>
exemplo<-matrix(c(0,1,0,0,0,0,2,0,1,0,0,3,0,2,0,0),ncol=4,nrow=4,byrow=T, dimnames=list(c("1","2","3","4"),c("A","B","C","D"))) exemplo max(exemplo) which(exemplo==3)
Esqueci o exemplo, desculpem.
Em 23 de janeiro de 2013 09:21, Augusto Ribas <ribas.aca@gmail.com> escreveu:
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
-- Grato Augusto C. A. Ribas
Site Pessoal: http://recologia.wordpress.com/ Lattes: http://lattes.cnpq.br/7355685961127056 _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Manoel Galdino https://sites.google.com/site/galdinomcz/

Muito Bom, era bem isso que eu queria, muito obrigado. Agora ja fica mais fácil evoluir na segunda parte :) Em 23 de janeiro de 2013 10:11, Manoel Galdino <mcz.fea@gmail.com> escreveu:
which(exemplo==max(exemplo), arr.ind=T)
-- Grato Augusto C. A. Ribas Site Pessoal: http://recologia.wordpress.com/ Lattes: http://lattes.cnpq.br/7355685961127056
participantes (2)
-
Augusto Ribas
-
Manoel Galdino