
Alexandre, se vc puder fazer a gentileza de explicar mais claramente o que vc deseja, a gente pode ajudar mais efetivamente, ao inves de ficar chutando o que vc precisa. Usando o exemplo do Walmes, eis algumas possibilidades set.seed(2011) x <- rpois(10, lambda=3) ## opcao 1 unlist(mapply(rep, 1, x)) ## opcao 2 sapply(mapply(rep, 1, x), paste, collapse=' ') ## opcao 3 sapply(mapply(rep, 1, x), paste, collapse='') b 2011/4/27 Alexandre dos Santos <alexandresantosbr@yahoo.com.br>:
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@listas.c3sl.ufpr.br [mailto:r-br-bounces@listas.c3sl.ufpr.br] On Behalf Of Lucas Barbosa Sent: quarta-feira, 27 de abril de 2011 13:53 To: r-br@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@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@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@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
_______________________________________________ R-br mailing list R-br@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@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
_______________________________________________ R-br mailing list R-br@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)