[R-es] paquetes reshape2 o tables

rubenfcasal
Thu, 05 Mar 2015 13:53:35 -0000

Hola Jose,

     Yo hago cosas de este estilo (aunque empleo una versión propia del
paquete R2HTML, para obtener resultados 'parecidos' a los del SPSS).

     Entiendo que tu problema está en las formulas que pretendes mezclar
con texto. Una solución sería preparar las formulas como texto y después
emplear as.formula(). Pego un ejemplo de un código mío bastante antiguo:

# datos <- data.frame
## Variables
vnames <- names(datos) # Nombres
vlabel <- attr(datos, "variable.labels")  # Etiquetas

vcat <-  sapply(datos, is.factor)
vnum <- which(!vcat) # Variables numéricas
vcat <- which(vcat)  # Variables categóricas

# ....

insertatitulo("Distribuciones condicionadas")

for (i in vcat)
   for (j in vnum) {
     y.formula <- as.formula(paste(vnames[j],vnames[i],sep="~"))
     boxplot(y.formula, ylab=vlabel[j], xlab=vlabel[i], data=datos)
     insertagrafico(paste(vnames[j],vnames[i],sep=" | "))
   }

     Otra opción es usar eval(parse(texto)) para evaluar lo que sea...

     Un saludo, Rubén.


El 03/03/2015 a las 18:47, Jose Ramirez Costa escribió:
> Alguien esta usando reshape2 o table, para construir tablas para
informes???
>
> Estoy haciendo un programa para automatizar la construccion de 50tablas
> para un informe q se hace anualmente, siempre igual, y no puedo generalizar
> el nombre las variables dentro de los comandos: dcast en reshape2 y tabular
> en tables
>
> Ej:
>
> con tables:
>
>
tabular(1+names(base)[2]*(1+as.factor(GBARES))~(1+names(base)[3])*FREQ*(sum),data=datatabla)
>
> en names(base)[2] guarde el nombre de la variable q van en la fila
> en names(base[3] guarde el nombre de la variable q van en la columna
>
> con reshape2
>
> dcast(datatabla, vf + GBARES ~ vc, length, margins = T)
>
> en vf guarde el nombre de la variable q van en la fila
> en vc guarde el nombre de la variable q van en la columna
>
> Tambien probe hacerles un paste para q quede nombredebase$nombredevariable
> y tampoco anda.
>
> Se puede hacer esto?
>
> Gracias Saludos