[R-br] Tabelas Complexas

walmes . walmeszeviani em gmail.com
Quinta Julho 31 13:32:07 BRT 2014


Partindo do data.frame que você forneceu no seu CMR. Alias, parábens por
enviá-lo e ilustrar tão bem suas necessidades. Segue minha primeira
abordagem para solucionar o problema.

df <- data.frame(c1, c2, c3, var, peso)
str(df)

## Lista de fórmulas.
f <- c(
    var~c1,
    var~c2,
    var~c3,
    var~c1+c2,
    var~c1+c3,
    var~c2+c3,
    var~c1+c2+c3)

aggregate(f[[1]], data=df, FUN=mean)

L <- lapply(f,
            function(fi){
                a <- aggregate(fi, data=df, FUN=mean)
                b <- aggregate(fi, data=df, FUN=length)
                m <- merge(a, b, by=names(a)[-ncol(a)])
                names(m)[ncol(m)-1:0] <- c("mean", "length")
                return(m)
            })
str(L)

require(plyr)

M <- do.call(rbind.fill, L)
str(M)

## À fazer:
## 1) tocar colunas de lugar, fatores antes, respostas depois.
## 2) trocar NA por tot.
## 3) talvez reordenar linhas.
## 4) encontrar uma forma automática de gerar todas as formulas a partir
## dos termos passados para ganhar tempo.

Foi usado que a aggregate() aceita fórmulas, a lapply() varre as fórmulas,
dentro ocorre a agregação seguida de merge(), depois o "deslistamento"
usando a rbind.fill() para empilhar data.frame que não tem o mesmo
nome/número de colunas.

​À
​ disposição.
Walmes.​
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140731/db83fa6a/attachment.html>


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