[R-br] Atualizar valores numa matriz...
Rodrigo Coster
rcoster em gmail.com
Sexta Junho 29 08:12:25 BRT 2012
É só salvar numa variável separada
dados<-matrix(sample(1:4,27,replace=T),ncol=3)
dados
#substituir x por y
x<-c(1,2)
y<-c(2,4)
#substituição
dados2 <- dados
for (i in seq_along(dados)) { dados[dados2 == x[i]] <- y[i] }
#final
dados2 # Dados originais
dados # Dados alterados
2012/6/29 andrebvs <andrebvs em bol.com.br>
> Bom dia Benilton!
>
> Na verdade é só substituir de uma vez, porque se for substituir de um por
> um, o que for atualizado, vai atualizar novamente. Mas o que estou querendo
> é o seguinte:
>
> Por exemplo:
>
> M=c(3,19,22,27,34,
> 3,12,22,34,43,
> 3,12,27,43,54,
> 12,19,27,34,43,
> 4,16,21,36,41,
> 4,9,16,30,41,
> 4,9,21,30,36,
> 9,16,21,36,41,
> 5,8,24,35,47,
> 5,15,24,38,52)
>
> Saída:
>
>
> [1,] 3 19 22 27 34
> [2,] 3 12 22 34 43
> [3,] 3 12 27 43 54
> [4,] 12 19 27 34 43
> [5,] 4 16 21 36 41
> [6,] 4 9 16 30 41
> [7,] 4 9 21 30 36
> [8,] 9 16 21 36 41
> [9,] 5 8 24 35 47
> [10,] 5 15 24 38 52
>
> Trocar onde tem v1 por v2:
>
> v1 < -
> c(9,11,12,15,18,19,21,22,23,24,27,30,32,35,36,39,41,46,52,54,55,56,57,58)
> v2
> <-c(10,12,13,14,17,23,24,25,28,29,30,32,33,36,37,41,42,44,51,52,53,54,59,60)
>
> Final desejado:
>
> [1,] 3 23 25 30 34
> [2,] 3 13 25 34 43
> [3,] 3 13 30 43 52
> [4,] 13 23 30 34 43
> [5,] 4 16 24 37 42
> ...
>
> [10,] 5 14 29 38 51
>
> É isso!
>
> ------------------------------
> Em 28/06/2012 16:30, *Augusto Ribas < ribas.aca em gmail.com >* escreveu:
>
> #exemplo
> dados<-matrix(sample(1:4,9,replace=T),ncol=3,nrow=3)
> dados
>
> #substituir x por y
> x<-c(2,3)
> y<-c(8,9)
>
> #substituição
> for (i in seq_along(dados)) { dados[dados == x[i]] <- y[i] }
>
> #final
> dados
>
> O que não funcionou?
> Utiliza o comando dput(suamatriz) aqui dai da pra testar o exemplo nela.
>
> E uma pergunta, vc quer trocar 11 por 12 e depois 12 por 13, ou seja
> na matriz final vai ficar onde era 11 e 12 um 13
> ou so trocar uma vez?
> se vc tem :
> 11 11
> 12 12
>
>
> vc quer
> 13 13
> 13 13
>
> ou
> 12 12
> 13 13
> ?
>
>
> Em 28 de junho de 2012 14:46, andrebvs escreveu:
>
> > Obg Benilton, mas o script não funcionou!
> >
> >
> > ________________________________
> > Em 28/06/2012 15:02, Beni lton Carvalho < beniltoncarvalho em gmail.com >
>
> > escreveu:
> >
> > for (i in seq_along(valores_atuais))
> > matriz[matriz == valores_na_matriz[i]] = valores_atuais[i]
> >
> >
> > b
> >
> > 2012/6/28 andrebvs :
> >
> >> Como atualizo alguns dos seguintes valores da matriz abaixo:
> >>
> >> [,1] [,2] [,3] [,4] [,5]
> >> [1,] 3 19 22 27 34
> >> [2,] 3 12 22 34 43
> >> [3,] 3 12 27 43 54
> >> [4,] 12 19 27 34 43
> >> [5,] 4 16 21 36 41
> >> [6,] 4 9 16 30 41
> >> [7,] 4 9 21 30 36
> >> [8,] 9 16 21 36 41
> >> [9,] 5 8 24 35 47
> >> [10,] 5 15 24 38 52
> >> [11,] 5Â � 8 15 35 38
>
> >> [12,] 8 15 24 38 Â 52
> >
> >> [13,] 7 11 23 39 46
> >> [14,] 7 18 32 46 49
> >> [15,] 7 11 18 23 39
> >> [16,] 11 18 32 39 46
> >> [17,] 3 16 23 35 54
> >> [18,] 3 5 16 36 46
> >> [19,] 3 5 23 35 46
> >> [20,] 5 16 35 36 54
> >> [21,] 4 7 22 30 47
> >> [22,] 4 22 24 30 34
> >> [23,] 4 7 24 34 47
> >> [24,] 7 22 24 34 49
> >> [25,] 8 19 21 32 43
> >> [26,] 8 11 21 38 43
> >> [27,] 8 19 32 38 50
> >> [28,] 11 19 21 32 43
> >> [29,] 9 12 18 39 41
> >> [30,] 9 15 27 39 52
> >> [31,] 9 12 15 18Â � 27
> >
> >> [32,] 12 18 27 39 41
> >> [33,] 3 15 21 35 39
> >> [34,] 3 4 21 22 39
> >> [35,] 3 15 22 35 47
> >> [36,] 4 15 21 22 39
> >> [37,] 5 7 19 38 46
> >> [38,] 5 19 27 38 54
> >> [39,] 5 7 23 27 46
> >> [40,] 7 23 27 38 46
> >>
> >> Os valores a serem atualizados (sbstituídos) da matriz são:
> >>
> >> valores_na_matriz <-
> >>
> c(9,11,12,15,18,19,21,22,23,24,27,30,32,35,36,39,41,46,52,54,55,56,57,58)
> >>
> >> Pelos correspondentes valores abai xo:
> >>
> >> valores_atuais <-
> >>
> c(10,12,13,14,17,23,24,25,28,29,30,32,33,36,37,41,42,44,51,52,53,54,59,60)
> >>
> >> ou seja, substituir na: 9 por 10, 11 por 12, 12 poe 13, ..., 58 por 60.
> >>
> >> desde já agradeço!
> >>
> >> Att.
> >> André
> >>
> >>
> >> _______________________________________________
> >> R-br mailing list
> >> R-br em 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.
> > _______________________________________________
> > R-br mailing list
> > R-br em listas.c3sl.ufpr.b r
> > 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.
> >
> >
> > _______________________________________________
> > R-br mailing list
> > R-br em 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.
>
>
>
> --
> Grato
> Augusto C. A. Ribas
>
> Site Pessoal: http://augustoribas.he liohost.org<http://augustoribas.heliohost.org>
> Lattes: http://lattes.cnpq.br/7355685961127056
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120629/ae618a1d/attachment.html>
Mais detalhes sobre a lista de discussão R-br