[R-br] Enc: (sem assunto)

Flavio Barros flaviomargarito em gmail.com
Quarta Outubro 16 13:36:17 BRT 2013


Existe ainda uma outra alternativa nesse caso que é o uso do data.table:

sexo=c("1","1","2","2","1","2","1","1","1","1","2")
idade=c("1","3","2","1","1","1","2","2","3","3","3")
tcont=c(100,320,24,256,134,290,18,34,15,121,32)
read=c("1","0","0","0","1","1","1","1","1","1","0")
df=data.frame(sexo,idade,read,tcont)

require(data.table)
dt <- data.table(df)

dt[,list(soma=sum(tcont), count=.N), by=list(idade,sexo)]


que é equivalente a :


ddply(dados, .(idade, sexo), summarize, soma=sum(tcont), count = length(tcont))


ambos com saída:


   idade sexo soma count
1:     1    1  267     4
2:     2    2  570     3
3:     3    1  475     3


O data.table tem uma grande vantagem sobre o plyr que é a velocidade.
Quando o arquivo é muito grande ele pode chegar a ser 100x mais
rápido.



2013/10/11 Fátima Lima Paula <fatima.lima.paula em gmail.com>

> Vinícius, não sei se é isso que você quer, mas eu fiz da seguinte forma:
>
> sexo=c("1","1","2","2","1","2","1","1","1","1","2")
> idade=c("1","3","2","1","1","1","2","2","3","3","3")
> tcont=c(100,320,24,256,134,290,18,34,15,121,32)
> read=c("1","0","0","0","1","1","1","1","1","1","0")
> df=data.frame(sexo,idade,read,tcont)
> df
>    sexo idade read tcont
> 1     1     1    1   100
> 2     1     3    0   320
> 3     2     2    0    24
> 4     2     1    0   256
> 5     1     1    1   134
> 6     2     1    1   290
> 7     1     2    1    18
> 8     1     2    1    34
> 9     1     3    1    15
> 10    1     3    1   121
> 11    2     3    0    32
>
> lixo=do.call(rbind, by(df, list(df$sexo, df$idade), function(x)
> data.frame(sexo=x$sexo[1], idade=x$idade[1],
>   tcont=mean(x$tcont), reads=sum(x$read == "1"))))
>   sexo idade tcont reads
> 1    1     1   117     2
> 2    2     1   273     1
> 3    1     2    26     2
> 4    2     2    24     0
> 5    1     3   152     2
> 6    2     3    32     0
>
> Acho que consegui pesquisando no google.
> Abs
> Fátima
>
>
> Em 10 de outubro de 2013 18:29, Vinicius Brito Rocha <
> viniciusbritor em gmail.com> escreveu:
>
> walmes,
>>
>> uma pergunta. é possível ter diferentes funções no aggregate? uma para
>> cada tipo de variável?
>>
>> imagine quer contar em uma e somar em outra (como numa query padrão sql)
>>
>> Abs
>>
>> Vinicius
>>
>>
>> Em 10 de outubro de 2013 18:11, walmes . <walmeszeviani em gmail.com>escreveu:
>>
>>> A aggregate() faz a mesma coisa de uma forma mais sofisticada.
>>>
>>> aggregate(cbind(tcont,read)~sexo+idade,
>>>           data=dados, FUN=sum)
>>>
>>> Mais opções estão disponíveis com as funções do pacote plyr, como
>>>
>>> require(plyr)
>>> ddply(dados, .(sexo,idade), summarise,
>>>       tcont=sum(tcont), read=sum(read))
>>>
>>> onde você pode usar funções diferentes para cada variável ou até usar
>>> mais de uma vez uma mesma variável.
>>>
>>> À 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
>>> skype: walmeszeviani
>>> homepage: http://www.leg.ufpr.br/~walmes
>>> 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
>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>>> código mínimo reproduzível.
>>>
>>
>>
>>
>> --
>> *Vinicius Brito Rocha.*
>> *Estatístico e Atuário **
>> M.Sc. Engenharia de Produção/PO*
>>
>>
>>
>> _______________________________________________
>> 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.
>>
>
>
>
> --
> "Minha felicidade depende da qualidade dos meus pensamentos"
>
> _______________________________________________
> 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/20131016/da9e3fed/attachment.html>


Mais detalhes sobre a lista de discussão R-br