A partir de los datos que me pasaste, encontre una manera de hacerlo con reshape basico, pero requiere un poco de magia :).
df_rula=read.csv("/home/harpo/Dropbox/lourdesoringinal.xlsx - asi queda.csv")
head(df_rula,5)
## Asessors copa1IC copa2IC copa1MV copa2MV copa1MR copa2MR copa1IA
## 1 ruth ade 0.01 0.01 7.20 7.78 2.67 2.42 4.93
## 2 Maryte Viedma 4.28 6.04 1.80 1.15 7.37 8.27 7.59
## 3 Anahi Soto 5.12 5.26 7.02 4.18 2.53 5.19 4.29
## 4 Laura Mercado 4.79 6.23 4.04 2.67 5.26 4.69 7.49
## 5 ANDREA VARGAS 1.76 3.24 1.04 2.55 2.88 2.01 3.63
## copa2IA copa1FF copa2FF copa1H copa2H copa1CA copa2CA copa1MA copa2MA
## 1 5.84 4.58 3.97 0.01 1.09 1.77 3.21 1.66 2.28
## 2 8.53 0.01 0.01 0.01 0.01 6.73 7.95 8.63 7.91
## 3 2.53 0.55 0.77 1.27 2.10 1.99 3.10 6.48 4.47
## 4 6.16 3.54 2.24 0.80 1.92 6.70 3.75 3.14 1.99
## 5 2.55 0.76 2.01 4.64 3.38 0.83 1.44 2.52 4.10
## copa1AM copa2AM copa1AC copa2AC copa1AS copa2AS copa1DU copa2DU
## 1 3.07 4.15 5.95 6.41 3.64 4.04 1.09 1.16
## 2 7.41 1.83 8.20 2.23 2.30 4.32 1.29 3.02
## 3 2.60 4.97 8.10 1.66 2.85 5.51 1.77 1.48
## 4 1.38 3.61 6.09 5.12 3.14 2.31 4.47 3.00
## 5 1.19 2.77 3.74 2.59 1.73 2.91 1.37 2.45
El problema es el formato en que vos guardas los nombres de tus columnas. Si en vez de guardalas asi:
## Asessors copa1IC copa2IC copa1MV copa2MV copa1MR copa2MR copa1IA copa2IA copa1FF copa2FF copa1H copa2H copa1CA copa2CA copa1MA copa2MA copa1AM copa2AM copa1AC copa2AC copa1AS copa2AS copa1DU copa2DU
Las guardaras de esta otra forma:
## Asessors IC_copa1 IC_copa2 MV_copa1 MV_copa2 MR_copa1 MR_copa2 IA_copa1 IA_copa2 FF_copa1 FF_copa2 H_copa1 H_copa2 CA_copa1 CA_copa2 MA_copa1 MA_copa2 AM_copa1 AM_copa2 AC_copa1 AC_copa2 AS_copa1 AS_copa2 DU_copa1 DU_copa2
Entonces seria muy facil usar reshape de la siguiente manera:
df_rula_ok=reshape(df_rula, varying =2:25, direction = 'long',sep="_")
head(df_rula_ok)
## Asessors time IC MV MR IA FF H CA MA AM
## 1.copa1 ruth ade copa1 0.01 7.20 2.67 4.93 4.58 0.01 1.77 1.66 3.07
## 2.copa1 Maryte Viedma copa1 4.28 1.80 7.37 7.59 0.01 0.01 6.73 8.63 7.41
## 3.copa1 Anahi Soto copa1 5.12 7.02 2.53 4.29 0.55 1.27 1.99 6.48 2.60
## 4.copa1 Laura Mercado copa1 4.79 4.04 5.26 7.49 3.54 0.80 6.70 3.14 1.38
## 5.copa1 ANDREA VARGAS copa1 1.76 1.04 2.88 3.63 0.76 4.64 0.83 2.52 1.19
## 6.copa1 camilo copa1 8.00 7.82 1.23 8.93 3.72 2.74 5.66 8.03 5.95
## AC AS DU id
## 1.copa1 5.95 3.64 1.09 1
## 2.copa1 8.20 2.30 1.29 2
## 3.copa1 8.10 2.85 1.77 3
## 4.copa1 6.09 3.14 4.47 4
## 5.copa1 3.74 1.73 1.37 5
## 6.copa1 7.38 6.63 0.66 6
En variying pones las columnas que van a variar, luego en direction indicas que vas a pasar del format wide al formato long y la magina de reshape viene con el parametero sep. Ahi le indicas que las trate de construir las nuevas variables a partir del separador *_* . Como tus variables son por ej. H_Copa1, H_Copa2 , etc. Reshape hace la magia y las construye como vos queres. Pero clarooo, tienen que estar previamente armadas de la manera que te dije y NO como vos las estas armando.
Como lo veo yo tenes dos opciones, o cambias los nombres de tus variables desde la appliacion o podes usar una magia previa para transformar los nombres al format que necesita reshape.
names(df_rula)<-sub("(copa[0-2])([A-Z]+)","\\2_\\1",names(df_rula))
La linea de codigo de arriba, hace exactamente eso, da vuelta el nombre de variables y le aggrega el **_** como separador.
En sintesis, el codigo quedaria asi:
names(df_rula)<-sub("(copa[0-2])([A-Z]+)","\\2_\\1",names(df_rula)) #cambiamos los nombres
df_rula_ok=reshape(df_rula, varying =2:25, direction = 'long',sep="_") #hacemos el reshape
df_rula_ok=df_rula_ok[order(df_rula_ok$Asessors),] #ordenamos por degustador
df_rula_ok
## Asessors time IC MV MR IA FF H CA MA AM
## 3.copa1 Anahi Soto copa1 5.12 7.02 2.53 4.29 0.55 1.27 1.99 6.48 2.60
## 3.copa2 Anahi Soto copa2 5.26 4.18 5.19 2.53 0.77 2.10 3.10 4.47 4.97
## 5.copa1 ANDREA VARGAS copa1 1.76 1.04 2.88 3.63 0.76 4.64 0.83 2.52 1.19
## 5.copa2 ANDREA VARGAS copa2 3.24 2.55 2.01 2.55 2.01 3.38 1.44 4.10 2.77
## 6.copa1 camilo copa1 8.00 7.82 1.23 8.93 3.72 2.74 5.66 8.03 5.95
## 6.copa2 camilo copa2 8.46 8.14 2.35 9.15 5.08 1.41 3.75 7.46 5.26
## 9.copa1 Claudia Lucero copa1 6.02 3.46 7.03 6.70 2.42 0.00 5.08 5.61 6.41
## 9.copa2 Claudia Lucero copa2 6.34 4.58 7.02 8.10 1.20 0.00 7.17 7.60 5.05
## 8.copa1 ines copa1 7.89 8.71 1.58 4.93 5.07 5.07 2.37 8.02 0.97
## 8.copa2 ines copa2 7.84 6.98 2.99 6.65 5.04 2.09 4.46 8.02 0.94
## 4.copa1 Laura Mercado copa1 4.79 4.04 5.26 7.49 3.54 0.80 6.70 3.14 1.38
## 4.copa2 Laura Mercado copa2 6.23 2.67 4.69 6.16 2.24 1.92 3.75 1.99 3.61
## 2.copa1 Maryte Viedma copa1 4.28 1.80 7.37 7.59 0.01 0.01 6.73 8.63 7.41
## 2.copa2 Maryte Viedma copa2 6.04 1.15 8.27 8.53 0.01 0.01 7.95 7.91 1.83
## 7.copa1 romina copa1 5.32 3.88 4.71 6.91 1.26 0.94 5.00 5.00 1.47
## 7.copa2 romina copa2 4.93 4.24 3.96 6.55 0.90 0.79 4.39 4.82 1.37
## 1.copa1 ruth ade copa1 0.01 7.20 2.67 4.93 4.58 0.01 1.77 1.66 3.07
## 1.copa2 ruth ade copa2 0.01 7.78 2.42 5.84 3.97 1.09 3.21 2.28 4.15
## AC AS DU id
## 3.copa1 8.10 2.85 1.77 3
## 3.copa2 1.66 5.51 1.48 3
## 5.copa1 3.74 1.73 1.37 5
## 5.copa2 2.59 2.91 2.45 5
## 6.copa1 7.38 6.63 0.66 6
## 6.copa2 4.76 7.78 2.78 6
## 9.copa1 5.62 5.69 1.02 9
## 9.copa2 4.47 7.49 2.24 9
## 8.copa1 3.96 8.09 8.17 8
## 8.copa2 3.92 8.13 8.20 8
## 4.copa1 6.09 3.14 4.47 4
## 4.copa2 5.12 2.31 3.00 4
## 2.copa1 8.20 2.30 1.29 2
## 2.copa2 2.23 4.32 3.02 2
## 7.copa1 5.90 1.47 5.11 7
## 7.copa2 5.50 1.29 5.22 7
## 1.copa1 5.95 3.64 1.09 1
## 1.copa2 6.41 4.04 1.16 1
Et Voila! :)