[R-br] Construir tabela para várias variáveis quantitativas

Mauricio Cardeal mcardeal2010 em gmail.com
Quinta Setembro 17 07:46:11 BRT 2015


Olá pessoal!

Gostaria de escrever uma função no R que fosse capaz de gerar uma única
tabela com, por exemplo, média, desvio-padrão, mínimo, máximo e tamanho da
amostra, para várias variaveis.

Fiz o script abaixo aproveitando uma sugestão de Simon O'Hanlon no
stackoverflow:

a <- c(4,5,3,2,8)
b <- c(3,2,7,6,1)
c <- c(7,6,5,8,7)
bd <- data.frame(a,b,c)

res <- lapply( bd , function(x) rbind( media = mean(x) ,
                                   dp = sd(x) ,
                                   minimo = min(x) ,
                                   maximo = max(x) ,
                                   n = length(x) ) )
data.frame( res )

> data.frame( res )
            a      b      c
media  4,4000 3,8000 6,6000
dp     2,3022 2,5884 1,1402
minimo 2,0000 1,0000 5,0000
maximo 8,0000 7,0000 8,0000
n      5,0000 5,0000 5,0000

O problema é que gostaria de que esse resultado estivesse transposto, quero
dizer, com as estatísticas nas colunas e as variáveis nas linhas, assim:

   media dp minimo maximo n
a
b
c

Tentei mudar o script, mas não consegui o resultado desejado (o cbind
bagunça).
Há uma solução para isso sem precisar recorrer a funções prontas?

Como havia enviado essa mensagem para a lista no período em que houve o
problema técnico, voltei aos estudos e encontrei uma solução simples em uma
apostila do professor Paulo:

 t(data.frame( res ))
  media     dp minimo maximo n
a   4,4 2,3022      2      8 5
b   3,8 2,5884      1      7 5
c   6,6 1,1402      5      8 5

Deixo então na lista o problema e a solução porque pode ser útil para
alguem.
Essa função é interessante porque aceita diversas modificações, como outras
estatísticas, arredondamento, etc.

De qualquer modo, se houver outra forma de se fazer isso, como função
própria de usuário, agradeço.

Obrigado,

-- 
Mauricio Cardeal
UFBA
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150917/8905a288/attachment.html>


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