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,