Descripción de variables: la media de las medias, ¿es la media general? (II)

En el número anterior comenzamos a realizar una descripción de un conjunto de datos que obtuvimos en una experimentación con lechones. En concreto teníamos el archivo “media.xlsx” donde teníamos los datos (la descarga de este esta al final del la pagina). También vimos que a través de la librería pastecs (https://cran.r-project.org/web/packages/pastecs/ pastecs.pdf) y su instrucción stat.desc() podíamos obtener una serie de estadísticos descriptivos. Si cargamos de nuevo los datos de “media. xlsx” en RCommander, cargamos la librería pastecs y ejecutamos en la instrucción round(stat. desc(media$adg_tot), digits = 3) obtendremos la salida que teníamos al final del número anterior y que podemos ver en las figuras 1 y 2. Lo que hemos hecho es decirle a R que queremoslos estadísticos que implementa stat.desc() para lavariable adg_tot y con 3 decimales.


GENERACIÓN DE INFORMES CON R
Ahora queremos generar un informe con nuestros datos. En nuestro informe inicial estamos interesados en las variables peso inicial, peso a los 40 días, consumo medio del periodo de los días 1 al 40, ganancia media diaria de los días 1 al 40 e índice de transformación de los días 1 al 40 de todos los lechones, sin tener en cuenta los diferentes grupos (el lector habrá visto que la última variable del conjunto de datos es el grupo al que pertenece cada corral pero de momento no haremos nada con ello). Hay que tener en cuenta la posición de cada variable en el conjunto de datos para indicarle a R qué variables queremos que formen parte del informe. Así, si abrimos la visualización de los datos yendo en RCommander a “Visualización de los datos” (figura 3), observamos que nuestras variables ocupan la siguiente posición en nuestra tabla de datos:

■  Peso inicial: columna 2.
■  Peso a los 40 días: columna 4.
■  Consumo medio del periodo de los días 1 al 40: columna 7.
■  Ganancia media diaria de los días 1 al 40: columna 10.
■  Índice de transformación de los días 1 al 40: columna 13.








Tener en cuenta esta posición es necesario porque ala hora de pedirle a la función stat.desc() las variables que queremos, se las pediremos por el orden enel que están en el conjunto de datos; aunque también podemos pedirlas indicándole su nombre. Así,si escribimos en la pantalla de instrucciones deRCommander:

round(stat.desc(media[,c(2, 4, 7, 10, 13)]), digits = 3)

Obtendremos la misma salida que si escribimos:

round(stat.desc(media[,c(“peso_ini”, “peso_40”“adfi_tot”, “adg_tot”, “it_tot)]), digits = 3)


Resultado de “stat.desc”

Con este comando obtendremos esta información en este formato:
             peso_ini peso_40 adfi_tot adg_tot it_tot
nbr.val      40.000   40.000  40.000   40.000  40.000
nbr.null     0.000    0.000   0.000    0.000   0.000
nbr.na       0.000    0.000   0.000    0.000   0.000
min          5.040    22.086  0.589    0.387   1.112
max          7.310    28.298  0.635    0.537   1.548
range        2.270    6.212   0.046    0.150   0.436
sum          249.840  992.900 24.454   18.623  52.802
median       6.115    24.745  0.610    0.466   1.309
mean         6.246    24.823  0.611    0.466   1.320
SE.mean      0.084    0.242   0.002    0.005   0.016
CI.mean.0.95 0.169   0.490    0.004   0.011    0.032
var          0.280    2.351   0.000    0.001   0.010
std.dev      0.529    1.533   0.012    0.035   0.099
coef.var     0.085    0.062   0.020    0.074   0.075

Pero esta salida es poco amigable y además tenemos que copiar los datos si queremos escribir uninforme. Veamos cómo poner solución mediante R.

GENERACIÓN DE INFORMES EN WORD DESDE R
Este problema ha sido resuelto a través del paquete de R ReporteRs. Este paquete nos permite, entre otras cosas, generar informes en Word desde R y así podemos darle nuestro formato, no tenemos que copiar salidas, etc. ¿Cómo funciona? Como todos los paquetes de R. Tenemos que ir a la consola inicial de R (figura 2), ir a Paquetes/Instalar paquete/s… elegir un espejo, por ejemplo Madrid y buscar el paquete ReporteRs. Lo instalamos y ya podemos usarlo. Y descargamos también el paquete xtable que necesitaremos después. El primer paso será convertir la salida anterior en una tabla y lo haremos de la siguiente forma:
■  Colocaremos los datos de salida en un objeto que llamaremos “solucion” con la instrucción:
solucion <- round(stat.desc(media[,c(2, 4, 7, 10, 13)]),
digits = 3)
■  Convertiremos el objeto “solución” en una tablacon la instrucción:
Ftsolucion <- FlexTable
(solucion, add.rownames = TRUE)
■  Convertiremos la tabla “Ftsolucion” en un objeto Word con las instrucciones:
doc = docx()
doc = addParagraph(doc, “Mi informe”, stylename =
“TitleDoc” )
doc = addTitle( doc, “Resultados productivos”, level = 1 )
doc = addParagraph( doc, “Tabla 1: Resultados
medios”, stylename = “DocDefaults”)
doc = addFlexTable(doc, Ftsolucion)
writeDoc(doc, file = “Tablas media.docx”)
browseURL(“Tablas media.docx”)
Y con ello habremos generado un fichero llamado“Tablas media.docx” donde encontraremos nuestros resultados que serán de la forma que se observa en la tabla 1. Ahora, sí que podemos manipular con Word nuestra salida o bien pegarla en otro informe, etc. Hayformas de programación en las que se puedencambiar directamente los nombres de las variablesy los nombres de los estadísticos. Resaltar también que R da las salidas con el punto como delimitador decimal (.) y que si nuestrosistema tiene por defecto la coma (,) como delimitador decimal, lo primero que debemos hacer escambiar todos los puntos por comas. Esta acciónes fácil y rápida: se elige toda la tabla en Word,vamos a la opción “Reemplazar” y reemplazamostodos los puntos por comas.

Y también con gráficos
Para los lectores avanzados, el siguiente código genera un archivo de imagen llamado “media.png”en el que generamos dos gráficos: un boxplot odiagrama de caja y un histograma (figura 4), quenos describen perfectamente la variable “peso_ini”(peso inicial). Una vez generada esta imagen, podemos insertarla en el archivo recién creado en Word(Tablas media.docx), teniendo preparado ya el inicio de nuestro informe.
doc = docx()
doc = addParagraph(doc, “Mi informe”, stylename =
“TitleDoc” )
doc = addTitle( doc, “Resultados productivos”, level = 1 )
doc = addParagraph( doc, “Tabla 1: Resultados
medios”, stylename = “DocDefaults”)
doc = addFlexTable(doc, Ftsolucion)
writeDoc(doc, file = “Tablas media.docx”)
browseURL(“Tablas media.docx”)



Documento para realizar la prueba: "media.xlsx"

Comentarios

Entradas populares