[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