[R-br] Ajuda (possivelmente simples) para reestruturar um data.frame

Benilton Carvalho beniltoncarvalho em gmail.com
Quarta Julho 13 14:01:24 BRT 2011


do.call(cbind, split(df, df[['tra']]))

2011/7/13 Jose Claudio Faria <joseclaudio.faria em gmail.com>:
> Pessoal,
>
> Ajuda ai que estou travado!
>
> #Tenho isso (desconsiderar a numeração das linhas)
>   tra r    y
> 1    A 1 2.70
> 2    A 2 3.02
> 3    A 3 3.25
> 4    A 4 3.21
> 5    A 5 3.04
> 6    A 6 3.07
> 7    B 1 1.16
> 8    B 2 1.16
> 9    B 3 0.91
> 10   B 4 0.93
> 11   B 5 0.82
> 12   B 6 0.71
> 13   C 1 3.01
> 14   C 2 2.91
> 15   C 3 3.14
> 16   C 4 2.96
> 17   C 5 3.01
> 18   C 6 2.93
> 19   D 1 4.88
> 20   D 2 4.68
> 21   D 3 5.20
> 22   D 4 4.94
> 23   D 5 5.34
> 24   D 6 5.07
> 25   E 1 4.89
> 26   E 2 5.26
> 27   E 3 5.07
> 28   E 4 5.14
> 29   E 5 5.47
> 30   E 6 4.98
>
> # Para economizar espaço em um relatório (que uso muito) preciso disso (idem):
>  tra r    y tra r    y tra r    y tra r    y tra r    y
> 1   A 1 2.70   B 1 1.16   C 1 3.01   D 1 4.88   E 1 4.89
> 2   A 2 3.02   B 2 1.16   C 2 2.91   D 2 4.68   E 2 5.26
> 3   A 3 3.25   B 3 0.91   C 3 3.14   D 3 5.20   E 3 5.07
> 4   A 4 3.21   B 4 0.93   C 4 2.96   D 4 4.94   E 4 5.14
> 5   A 5 3.04   B 5 0.82   C 5 3.01   D 5 5.34   E 5 5.47
> 6   A 6 3.07   B 6 0.71   C 6 2.93   D 6 5.07   E 6 4.98
>
> # Fiz na "mão grande" usando "cbind" assim
> dados.tb <- cbind(dados.q1[1:6,],
>                   dados.q1[7:12,],
>                   dados.q1[13:18,],
>                   dados.q1[19:24,],
>                   dados.q1[25:30,])
>
> Contudo, creio que deve ter uma solução mais racional e genérica para
> quando mudar o número de tratamentos e repetições!
> Tentei split, pacotes doBy e reshape, mas não fui bem sucedido.
>
> Para reprodução de possível solução pode usar 'df' abaixo:
>
> df <- data.frame(gl(n=5, k=6, lab=LETTERS[1:5]), rep(1:6, 5), 1:30)
> names(df) <- c('tra', 'r', 'y')
>
> Abs,
> --
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> Jose Claudio Faria
> Estatistica - prof. Pleno
> UESC/DCET/Brasil
> joseclaudio.faria em gmail.com
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> _______________________________________________
> 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.
>



-- 
Successful people ask better questions, and as a result, they get
better answers. (Tony Robbins)


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