[R-br] Converter valores em numeros 1 correspondentes
Alexandre dos Santos
alexandresantosbr em yahoo.com.br
Quarta Abril 27 14:30:30 BRT 2011
Obrigado Pessoal,
Mais ainda não deu certo a solução do Walmes não esta deixando tudo
dentro um mesmo vetor, se eu faço:
> set.seed(2011)
> x <- rpois(10, lambda=3)
> z<-sapply(x, function(r){ rep(1, r) })
> sum(z)
Erro em sum(z) : 'type' inválido (list) do argumento
A mesma coisa com a solução do Lucas que fica:
> for(j in 1:length(x)){
+ for(i in 1:x[j]){
+ if(i==1) soma = 1
+ else soma = soma + 10^(i-1)
+ }
+ x[j] = soma
+ }
>
> x
[1] 11 1 111 1 11 11111 1 111 11111 11
> sum(x)
[1] 22480
enquanto a soma do vetor deveria ser 25
Na verdade gostaria que meu objeto x sendo,
> set.seed(2011)
> x <- rpois(4, lambda=3)
> x
[1] 2 1 3 1
Se converta em:
> [1] 1 1 1 1 1 1 1
Sendo a sum(x)=7
Obrigado a todos,
Alexandre dos Santos
Ingenieur forestier, Msc.
INRA- Biostatistique et Processus Spatiaux (BioSP)
Domaine Saint-Paul
Site Agroparc
84914 - Avignon - France
Tél. : +33 (0)6 87 95 16 29
From: r-br-bounces em listas.c3sl.ufpr.br
[mailto:r-br-bounces em listas.c3sl.ufpr.br] On Behalf Of Lucas Barbosa
Sent: quarta-feira, 27 de abril de 2011 13:53
To: r-br em listas.c3sl.ufpr.br
Subject: Re: [R-br] Converter valores em numeros 1 correspondentes
A solução vai depender do tipo de saída que você quer. Essa não é a solução
mais enxuta, mas funciona do jeito que você está precisando:
x = m.2
for(j in 1:length(x)){
for(i in 1:x[j]){
if(i==1) soma = 1
else soma = soma + 10^(i-1)
}
x[j] = soma
}
É como converter os números para uma base numérica unária, se é que isso faz
sentido.
Em 27 de abril de 2011 13:30, Benilton Carvalho <beniltoncarvalho em gmail.com>
escreveu:
enqto eu nao sei exatamente o que ele quer, ai' vai como simplificar o
seu sapply()
mapply(rep, 1, x)
b
2011/4/27 Walmes Zeviani <walmeszeviani em gmail.com>:
> Alexandre,
>
> Postei a solução sem avaliar o código e confundi as coisas. Segue o CMR
> corrigido
>
> set.seed(2011)
> x <- rpois(10, lambda=3)
> sapply(x, function(r){ rep(1, r) })
>
> À disposição.
> Walmes.
>
> ==========================================================================
> Walmes Marques Zeviani
> LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
> Departamento de Estatística - Universidade Federal do Paraná
> fone: (+55) 41 3361 3573
> VoIP: (3361 3600) 1053 1173
> e-mail: walmes em ufpr.br
> twitter: @walmeszeviani
> homepage: http://www.leg.ufpr.br/~walmes
<http://www.leg.ufpr.br/%7Ewalmes>
> linux user number: 531218
> ==========================================================================
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>
>
--
Successful people ask better questions, and as a result, they get
better answers. (Tony Robbins)
_______________________________________________
R-br mailing list
R-br em listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110427/b88ee710/attachment.html>
Mais detalhes sobre a lista de discussão R-br