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

Jose Claudio Faria joseclaudio.faria em gmail.com
Quarta Julho 13 13:50:53 BRT 2011


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
///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\


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