R: diferència entre les revisions

Salta a la navegació Salta a la cerca
8.947 bytes afegits ,  3 juny 2014
m
Text replacement - "[[Imatge:" to "[[Image:"
m (Text replacement - "[[Imatge:" to "[[Image:")
 
(97 revisions intermèdies per 12 usuaris que no es mostren)
Línia 6: Línia 6:
[[Categoria:Software]]
[[Categoria:Software]]


R es un software de análisis estadístico de código abierto basado en el lenguaje S, desarrollado a principio de los años 90. El programa [http://www.insightful.com/products/splus/default.asp S-Plus] utiliza el mismo lenguaje S, pero se trata de un software propietario y con un precio prohibitivo para la mayoría de los mortales.
'''Este artículo es demasiado largo. Si alguien se anima, debería segmentarse ([[Islàndia|ejemplo]]) y además usar la [[WikiTraba:Ajuda#Introducir_programas_de_R|integración]] entre [[R]] y [[MediaWiki]]'''.


En la [[R#Instalaci.C3.B3n_y_ejecuci.C3.B3n|primera parte]] de este artículo (puntos 1 a 7) se muestran los principios generales de este software y la forma de instalar todos sus componentes. En la [[R#Captura_de_datos_externos|segunda parte]] (puntos 8 a 15) se explican algunas de sus principales funciones, con pequeños ejemplos para clarificar lo que se explica. Los puntos 16 y 17 se dedican a la [[R#Exportaci.C3.B3n_e_integraci.C3.B3n_con_LaTeX | exportación de resultados]] a distintos formatos. El punto 18 muestra un [[R#Un ejemplo_casi-real|ejemplo]] tomado de la realidad y que ilustra algunos de los procedimientos expuestos. Finalmente en los puntos 19 a 21 se muestra como obtener [[R#Sistema_de_ayuda|ayuda]] adicional.
R es un software de análisis estadístico de código abierto basado en el lenguaje S, desarrollado a principio de los años 90. El programa [http://www.insightful.com/products/splus/default.asp $-Plus] utiliza el mismo lenguaje S, pero se trata de un software propietario y con un precio prohibitivo para la mayoría de los mortales.
 
Si quieres, puedes consultar también [[Trabajar|nuestra guía]] sobre como poner en funcionamiento un completo sistema de trabajo para la investigación en medicina.
 
En la [[R#Instalaci.C3.B3n_y_ejecuci.C3.B3n|primera parte]] de este artículo (puntos 1 a 8) se muestran los principios generales de este software y la forma de instalar todos sus componentes. En la [[R#Captura_de_datos_externos|segunda parte]] (puntos 9 a 16) se explican algunas de sus principales funciones, con pequeños ejemplos para clarificar lo que se explica. Los puntos 17 y 18 se dedican a la [[R#Exportaci.C3.B3n_e_integraci.C3.B3n_con_LaTeX | exportación de resultados]] a distintos formatos. El punto 19 muestra un [[R#Un ejemplo_casi-real|ejemplo]] tomado de la realidad y que ilustra algunos de los procedimientos expuestos. Finalmente en los puntos 20 a 22 se muestra como obtener [[R#Sistema_de_ayuda|ayuda]] adicional.




Línia 16: Línia 20:


Los binarios para la instalación en sistemas M$ se pueden descargar desde [http://cran.cict.fr/bin/windows/base/release.htm aquí]. Para entrar al programa hay que ejecutar el acceso directo a Rgui.exe situado en el menú inicio.
Los binarios para la instalación en sistemas M$ se pueden descargar desde [http://cran.cict.fr/bin/windows/base/release.htm aquí]. Para entrar al programa hay que ejecutar el acceso directo a Rgui.exe situado en el menú inicio.
Debido al [[R#El_sistema_de_librer.C3.ADas sistema de librerías|sistema de librerías]] que usa R, los cambios de versión pueden parecer complicados. Lo más sencillo es desinstalar la versión antigua, instalar la nueva y volver a bajar todas las librerías que se tuvieran instaladas. Sin embargo, también es posible conservar las carpetas correspondientes a las librerías que se quieran guardar, que se encuentran en la ruta:
c:/.../rw.../library
Hay que copiar dichas carpetas y pegarlas en el directorio donde instalemos la nueva versión.


=== Sistemas GNU/Linux ===
=== Sistemas GNU/Linux ===
Línia 23: Línia 33:
''Nota: ">" es el simbolo del sistema. asi que no hay que teclearlo''
''Nota: ">" es el simbolo del sistema. asi que no hay que teclearlo''


Una interfaz gráfica (similar al Rgui disponible para sistemas M$) es r-gnome, se instala desde Synaptic; para lanzar R con la interfaz grafica r-gnome debemos escribir en una ventana Terminal:
Si no se dispone de Synaptic o se quiere tener siempre la última versión del programa sin esperar a que aparezca en los repositorios, hay que bajar la versión correspondiente a nuestra distribución desde el [http://cran.r-project.org CRAN].
>R --gui=GNOME
 
La actualización a nuevas versiones puede realizarse igualmente desde Synaptic o desde el [http://cran.r-project.org CRAN] sin mayores problemas.


== Lenguaje encarado a objetos ==
== Lenguaje encarado a objetos ==
Línia 68: Línia 79:


# las que se instalan con el sistema R-base y se cargan por defecto al inicio ''(no requieren pasos adicionales para ser utilizadas)''
# las que se instalan con el sistema R-base y se cargan por defecto al inicio ''(no requieren pasos adicionales para ser utilizadas)''
# las que se instalan con el sistema R-base y no se cargan por defecto al inicio ''(requieren ser cargadas para ser utilizadas)''
# las que se instalan con el sistema R-base y no se cargan por defecto al inicio ''(requieren ser cargadas para ser utilizadas)'':
# las que no se instalan con el sistema R-base y hay que bajar del [http://cran.r-project.org/ CRAN] ''(requieren instalación desde CRAN y carga)''
# las que no se instalan con el sistema R-base y hay que bajar del [http://cran.r-project.org/ CRAN] ''(requieren instalación desde CRAN y luego carga)''
# las que no se instalan con el sistema R-base y no están disponible en el CRAN. ''(Disponibles en ficheros .zip que se encuentran habitualmente en páginas personales de internet)''
# las que no se instalan con el sistema R-base y no están disponible en el CRAN ''(disponibles en ficheros .zip que se encuentran habitualmente en páginas personales de internet, desde donde hay que descargarlas, instalarlas y luego cargarlas)''


''Nota: La nomenclatura utilizada para los tipos de librerias es propia y no estándar.''
''Nota: La nomenclatura utilizada para los tipos de librerias es propia y no estándar.''


=== Instalación de librerias adicionales en sistemas M$ ''(tipo 3)'' ===
=== Instalación de librerias adicionales en sistemas M$ ''(tipos 3 y 4)'' ===
 
Desde el programa (Rgui) existe un menú para instalar paquetes directamente desde el [http://cran.r-project.org repositorio CRAN] (tipo 3) sin tenerlos que descargar previamente de forma manual.
 
Desde el menú también se pueden instalar paquetes a partir de ficheros .zip bajados manualmente. Suele tratarse de paquetes tipo 4, aunque también se puede descargar librerías tipo 3 de forma manual desde el [http://cran.r-project.org CRAN] y luego instalarlos como ficheros .zip.
 
Para actualizar todos los paquetes instalados (excepto el paquete básico), hay que usar la función correspondiente del menú (''update packages'').
 
=== Instalación de librerias adicionales en sistemas GNU/Linux. ''(tipos 3 y 4)''===  
 
Al igual que el sistema base, algunos paquetes adicionales (tipo 3) de R pueden instalarse desde Synaptic en [[Ubuntu]] buscando la palabra CRAN.
 
Los paquetes se guardarán automáticamente en la ubicación:
 
/usr/lib/R/site-library/''nombrepaquete''
 
y estarán disponibles immediatamente para ser cargados cuando se desee.
 
Sin embargo, no todos los paquetes adicionales disponibles en el [http://cran.r-project.org CRAN] (tipo 3) se pueden descargar desde Synaptic, y hay muchas distribuciones GNU/Linux distintas de [[Ubuntu]]. En estos casos, si conocemos el nombre de la librería hay que teclear desde R (ejecutado en un ''Root terminal''):
 
install.packages("nombrepaquete")
 
Con este procedimiento los nuevos paquetes se ubicarán en:
 
/usr/local/lib/R/site-library


Desde el programa (Rgui) existe un menú para instalar paquetes directamente desde el repositorio CRAN sin tenerlos que descargar previamente de forma manual. También se pueden instalar paquetes a partir de ficheros .zip a través del menú.
Otra forma de proceder con análogos resultados es buscar directamente por [[Firefox|navegador]]  en el [http://cran.r-project.org CRAN] la librería que nos interesa, decargarla en formato .zip y luego desde R (en un ''Root terminal'') escribir:


=== Instalación de librerias adicionales en sistemas GNU/Linux. ''(tipo 3)''===
install.packages("rutacompleta/nombrearchivo.zip",CRAN=NULL)


Al igual que el sistema base, cualquier paquete de R puede instalarse desde Synaptic buscando la palabra CRAN.
Los paquetes de tipo 4 descargados en formato .zip se instalan también con la instrucción anterior en R bajo un ''Root terminal'':
 
install.packages("rutacompleta/nombrearchivo.zip",CRAN=NULL)
 
Una forma alternativa de instalar los paquetes .zip sin necesidad de introducir órdenes de R es descomprimir todo su contenido en:
 
  /usr/lib/R/site-library/''nombrepaquete''
 
o en:


Los paquetes se guardaran automaticamente en la ubicación:
  /usr/lib/R/library/''nombrepaquete''
  /usr/lib/R/library/''nombrepaquete''


También se pueden instalar paquetes ''(tipo 4)'' manualmente descomprimiendo los ficheros .zip en dicha ubicación .
o en:
 
  /usr/local/lib/R/site-library/''nombrepaquete''
 
Para actualizar todos los paquetes instalados (excepto el paquete básico), hay que teclear en R en un ''Root terminal'':
 
update.packages()


=== Cargado de librerías ===
=== Cargado de librerías ===


Cuando se inicia R, sólo las funciones contenidas en determinadas librerías del núcleo básico están disponibles para ser utilizadas ''(tipo 1)'' . Incluso algunas librerías del núcleo básico no están cargadas al iniciar para ahorrar recursos ''(tipo 2)''. Para cargar una librería ''(tipos 2 y 3)'', hay que utilizar la función library(). Por ejemplo para cargar la librería 'survival' (para el análisis de supervivencia), que se instala con el paquete básico pero no se carga al inicio, habría que escribir:
Cuando se inicia R, sólo las funciones contenidas en determinadas librerías del núcleo básico están disponibles para ser utilizadas ''(tipo 1)'' . Incluso algunas librerías del núcleo básico no están cargadas al iniciar para ahorrar recursos ''(tipo 2)''. Para cargar una librería ''(tipos 2, 3 y 4)'', hay que utilizar la función library(). Por ejemplo para cargar la librería 'survival' (para el análisis de supervivencia), que se instala con el paquete básico pero no se carga al inicio, habría que escribir:
 
  library(survival)
  library(survival)


La librería permanecerá cargada hasta que salgamos del programa, así que sólo hay que cargarla una vez por sesión.
Si no la descargamos antes, una librería permanecerá cargada hasta que salgamos del programa, así que sólo hay que cargarla una vez por sesión.
 
Para descargarla:
 
detach(package:nombrelibreria)


=== Algunas librerías útiles ===
=== Algunas librerías útiles ===
Línia 105: Línia 158:


*xtable**: Permite exportar tablas a formato [[Latex| LaTeX]].
*xtable**: Permite exportar tablas a formato [[Latex| LaTeX]].
*Rcmdr**: Presenta una interfaz gráfica más amigable para la edición de datos y ejecución de comandos desde menús. Puede ser útil para nuevos usuarios para facilitar la curva de aprendizaje, pero disminuye la gran flexibilidad del software.


=== El paquete Traba (tipo 4) ===
=== El paquete Traba (tipo 4) ===


En el [http://acrida.2mydns.com/trabachat/ Trabachat] se han desarrollado un conjunto de funciones agrupadas en el paquete [http://acrida.2mydns.com/wikitraba/arxius/traba_1.4-1.zip Traba]. El link anterior permite su descarga en formato .zip para poderlo instalar.
En el [http://www.traba.org/trabachat/ Trabachat] se han desarrollado un conjunto de funciones agrupadas en el [[Media:traba_1.4-1.zip | paquete Traba]]. El link anterior permite su descarga en formato .zip para poderlo instalar.


Se puede descargar también el [http://acrida.2mydns.com/wikitraba/arxius/source.rar código fuente] para ver o modificar la sintaxis de las distintas funciones que contiene.
Se puede descargar también el [[Media:source.rar | código fuente]] para ver o modificar la sintaxis de las distintas funciones que contiene.


== Editores de sintaxis ==
== Editores de sintaxis ==
Línia 145: Línia 196:


Una vez instalados [[Emacs]] y [http://stat.ethz.ch/ESS/ Emacs Speaks Statistics (ESS)], hay que abrir con [[Emacs]] un arhivo de código de R con la extensión '''.R'''. Automáticamente [[Emacs]] detecta que se trata de código de R y muestra unos nuevos botones relacionados con este sistema. Para iniciar la ejecución de R '''dentro''' de Emacs hay que pulsar el primer botón, identificado con una '''R''' azul. Para visualizar el ''buffer'' de R hay que darle al último botón, el que muestra una flecha azul y el texto '''ESS'''. De esta forma deberíamos tener en la parte superior de la pantalla el fichero ('''buffer''') con la sintaxis de R (si no es así, debemos seleccionarlo a través del menú '''Buffers'''), y en la parte inferior el '''buffer''' donde se está ejecutando R. Podemos mandar partes del código a R pulsando el cuarto botón del '''panel''' de R.
Una vez instalados [[Emacs]] y [http://stat.ethz.ch/ESS/ Emacs Speaks Statistics (ESS)], hay que abrir con [[Emacs]] un arhivo de código de R con la extensión '''.R'''. Automáticamente [[Emacs]] detecta que se trata de código de R y muestra unos nuevos botones relacionados con este sistema. Para iniciar la ejecución de R '''dentro''' de Emacs hay que pulsar el primer botón, identificado con una '''R''' azul. Para visualizar el ''buffer'' de R hay que darle al último botón, el que muestra una flecha azul y el texto '''ESS'''. De esta forma deberíamos tener en la parte superior de la pantalla el fichero ('''buffer''') con la sintaxis de R (si no es así, debemos seleccionarlo a través del menú '''Buffers'''), y en la parte inferior el '''buffer''' donde se está ejecutando R. Podemos mandar partes del código a R pulsando el cuarto botón del '''panel''' de R.
== GUI's ==
El hecho que R no tenga los ''menús'' para seleccionar funciones como tienen algunos otros sistemas de análisis estadístico puede hacer que resulte complejo su uso al principio. Para ello se han desarrollado varios GUI (''Graphical User Interface'') que ayudan al principio a irse familiarizandose con el lenguaje, aún a costa de perder flexibilidad. [http://www.sciviews.org/_rgui/ Aquí] se puede encontrar un resumen de los principales GUI para R. Algunos de ellos son los siguientes:
*[http://socserv.socsci.mcmaster.ca/jfox/Misc/Rcmdr/ Rcomander]: Se instala a través de la [http://cran.r-project.org/doc/packages/Rcmdr.pdf librería Rcmdr] (tipo 3). Multiplataforma.
*[http://www.sciviews.org/SciViews-R/ SciViewsR]: Disponible desde el 2 de abril de 2005 (es un desarrollo en estado alfa, solo disponible para windows de momento) esta interfaz grafica de R se asemeja a la que utiliza el programa SAS que divide la ventana en 3 secciones (una para edición de sintaxis, una para visualizar resultados y una tercera para navegar por los objetos y funciones).
SciViews-R es un conjunto de paquetes para R (principalmente el editor de texto [http://www.sciviews.org/Tinn-R/index.html Tinn-R], R2HTML, el GUI Rcmdr y algunos mas) que se integran en una interfaz grafica para R
Requiere los siguientes pasos previos:
#el programa [[R]] instalado y funcionando, el Rgui debe estar en modo sdi (Edit/Gui preferences/sdi, y salvar) hay que cerrar y volver a abrir el programa para que se apliquen los cambios.
#descargar e instalar [http://www.sciviews.org/SciViews-R/SciViews-R_0.7-3Setup.exe sciViews-R_0.7-3Setup.exe] , aceptando los iconos en el escritorio y en el menu de inicio.
#una vez instalado tenemos que entrar en la carpeta donde se ha instalado SciViews y modificar las propiedades del '''acceso directo''' a sciViews-R (boton derecho del mouse/propiedades/ en donde dice destino debe quedar reflejado el camino a Rgui.exe y las opciones que se describen abajo así:
"C:\Archivos de programa\R\rw2010pat\bin\Rgui.exe" --sdi RSciViews.RData
''Ten presente que tu camino correcto puede diferir de lo que se ejemplifica aqui.''
En caso de estar detras de un proxy tambien hay que añadir la opción:
<nowiki>http_Proxy=http://direccion.del.proxy:puerto/</nowiki>
Que permitira que se pueda conectar a la red para descargar paqueteria necesaria.
ya se puede proceder a lanzar la aplicación desde el icono que ha quedado en el menu de inicio o en el escritorio (es el mismo icono que R pero con tres atomos de colores). a medida que se utilize puede que necesite mas paquetes (por ejemplo para cada función que se ha implementado bajo Rcmdr (editar la base de datos, ciertos test estadisticos, etc...) siguiendo un sistema de ventanas se escogera el repositorio (CRAN, Bioconductur, etc...) el mirror (Spain, Francia, etc...) y procedera a a la descarga e instalación de los mismos.


== Tipos de datos ==
== Tipos de datos ==
Línia 333: Línia 407:
Las mayoría de formatos externos se pueden capturar con funciones contenidas en la librería ''foreign'' (tipo 2), mientras que para la captura de bases de datos relacionales (como [http://office.microsoft.com/es-hn/FX010857913082.aspx M$ Access]) es necesaria la libreria ''RODBC'' (tipo 3).
Las mayoría de formatos externos se pueden capturar con funciones contenidas en la librería ''foreign'' (tipo 2), mientras que para la captura de bases de datos relacionales (como [http://office.microsoft.com/es-hn/FX010857913082.aspx M$ Access]) es necesaria la libreria ''RODBC'' (tipo 3).


=== Captura de [http://www.spss.com SPSS] ===
=== Captura de [http://www.spss.com $P$$] ===


El siguiente ejemplo muestra cómo capturar una hoja de datos de [http://www.spss.com SPSS]:
El siguiente ejemplo muestra cómo capturar una hoja de datos de [http://www.spss.com $P$$]:


  library(foreign)
  library(foreign)
Línia 434: Línia 508:
Sin embargo, hay muchas otras funciones más complejas para la manipulación de bases de datos. Destacaremos tres de ellas:
Sin embargo, hay muchas otras funciones más complejas para la manipulación de bases de datos. Destacaremos tres de ellas:


* ''aggregate'': permite segmentar la base de datos según un identificador, calcular distintos estadísticos para cada una de los segmentos y presentarlos en un registro único para cada valor del identificador. No se entiende, verdad?
* ''aggregate'': sirve parar conseguir una base de datos con calculos agregados, segun los segmentos definidos por un identificador (segmenta segun el identificador, calculos agregados, colapsa segun el identifcador). de tal manera que se tendra un registro por cada valor univoco del identificador. su utilización se demuestra en el [[R#Un ejemplo_casi-real|ejemplo]] del final del artículo.
----
'''Editando:''' Se entiende mejor asi? (sirve parar realizar calculos agregados, segun los segmentos definidos por un identificador. de tal manera que se tendra un registro por cada valor univoco del identificador)
----
Como tu veas
----
Pues habrá que ver el [[R#Un ejemplo_casi-real|ejemplo]] del final del artículo.  


* ''merge'': permite unir dos bases de datos con distintas variables y un identificador común.
* ''merge'': permite unir dos bases de datos con distintas variables y un identificador común.
Línia 474: Línia 542:
  length(subset(var,is.na(nombrevariable)==T))
  length(subset(var,is.na(nombrevariable)==T))


La función ''Explore'' del [http://acrida.2mydns.com/wikitraba/arxius/traba_1.4-1.zip paquete Traba] devuelve todos estos índices y algunos más, de forma parecida al procedimiento ''Explore'' de [http://www.spss.com SPSS].
La función ''Explore'' del [[Media:traba_1.4-1.zip | paquete Traba]] devuelve todos estos índices y algunos más, de forma parecida al procedimiento ''Explore'' de [http://www.spss.com SPSS].


=== Variables categóricas ===
=== Variables categóricas ===
Línia 577: Línia 645:
=== Medidas de asociación ===
=== Medidas de asociación ===


Las funciones '''risc''' y '''riscagr''' del [http://acrida.2mydns.com/wikitraba/arxius/traba_1.4-1.zip paquete Traba] calculan las medidas de asociación (OR y RR) a partir de datos individuales o de tablas de contingencia introducidas directamente:
Las funciones '''risc''' y '''riscagr''' del [[Media:traba_1.4-1.zip | paquete Traba]] calculan las medidas de asociación (OR y RR) a partir de datos individuales o de tablas de contingencia introducidas directamente:


  library(traba)
  library(traba)
Línia 696: Línia 764:
  summary(modelo)$coefficients[2,1]
  summary(modelo)$coefficients[2,1]


Los objetos de tipo ''glm'' pueden usarse com argumentos de las funciones [[R#El_ejemplo_de_la_funci.C3.B3n_interval| ''interval'']] y ''llh'', ambas contenidas en el [http://acrida.2mydns.com/wikitraba/arxius/traba_1.4-1.zip paquete Traba] y que permiten calcular, respectivamente, los intervalos de confianza de los coeficientes y la prueba de razón de verosimilitud:
Los objetos de tipo ''glm'' pueden usarse com argumentos de las funciones [[R#El_ejemplo_de_la_funci.C3.B3n_interval| ''interval'']] y ''llh'', ambas contenidas en el [[Media:traba_1.4-1.zip | paquete Traba]] y que permiten calcular, respectivamente, los intervalos de confianza de los coeficientes y la prueba de razón de verosimilitud:


  library(traba)
  library(traba)
Línia 734: Línia 802:
  dev.off()
  dev.off()


[[Imatge:sexe.jpg]]
[[Image:sexe.jpg]]


* Ejemplo 2: Curva epidémica (histograma) de una toxinfección alimentaria:
* Ejemplo 2: Curva epidémica (histograma) de una toxinfección alimentaria:
Línia 746: Línia 814:




[[Imatge:corba.jpg]]
[[Image:corba.jpg]]


== Programación de funciones ==
== Programación de funciones ==


Otro punto fuerte de R es la posibilidad de crearse funciones propias, como es el caso de las contenidas en el [http://acrida.2mydns.com/wikitraba/arxius/traba_1.4-1.zip paquete Traba]. A continuación se explica el procedimiento de creación de una función mediante el ejemplo de las funciones [[R#El_ejemplo_de_la_funci.C3.B3n_interval | interval]] y [[R#El_ejemplo_de_la_funci.C3.B3n_montehall | montehall]] de dicho [http://acrida.2mydns.com/wikitraba/arxius/traba_1.4-1.zip paquete],  
Otro punto fuerte de R es la posibilidad de crearse funciones propias, como es el caso de las contenidas en el [[Media:traba_1.4-1.zip | paquete Traba]]. A continuación se explica el procedimiento de creación de una función mediante el ejemplo de las funciones [[R#El_ejemplo_de_la_funci.C3.B3n_interval | interval]] y [[R#El_ejemplo_de_la_funci.C3.B3n_montehall | montehall]] de dicho [[Media:traba_1.4-1.zip | paquete]],  


El código completo de ambas funciones puede encontrarse en el [http://acrida.2mydns.com/wikitraba/arxius/source.rar código fuente] del [http://acrida.2mydns.com/wikitraba/arxius/traba_1.4-1.zip paquete Traba].
El código completo de ambas funciones puede encontrarse en el [[Media:source.rar | código fuente]] del [[Media:traba_1.4-1.zip | paquete Traba]].


=== El ejemplo de la función ''interval'' ===
=== El ejemplo de la función ''interval'' ===
Línia 947: Línia 1.015:
  interval(glm(vardep~varindep1+varindep2))
  interval(glm(vardep~varindep1+varindep2))


Para no tener que ejecutar cada vez la función, se recomienda incluirla en un paquete (como se hizo con el [http://acrida.2mydns.com/wikitraba/arxius/traba_1.4-1.zip paquete Traba]). El procedimiento para hacerlo se explica más abajo.
Para no tener que ejecutar cada vez la función, se recomienda incluirla en un paquete (como se hizo con el [[Media:traba_1.4-1.zip | paquete Traba]]). El procedimiento para hacerlo se explica más abajo.


=== El ejemplo de la función ''montehall'' ===
=== El ejemplo de la función ''montehall'' ===
Línia 1.015: Línia 1.083:
  ?nombrefunción
  ?nombrefunción


La forma más sencilla de hacerlo es crear un nuevo fichero llamado ''nombrefunción.Rd'' (por ejemplo ''interval.Rd'') y escribir directamente la ayuda. Se aconseja que los ficheros de ayuda contengan siempre los mismos apartados (nombre de la función, parámetros, resultados, etc.), como se puede ver en el [http://acrida.2mydns.com/wikitraba/arxius/source.rar código fuente] del [http://acrida.2mydns.com/wikitraba/arxius/traba_1.4-1.zip paquete Traba].
La forma más sencilla de hacerlo es crear un nuevo fichero llamado ''nombrefunción.Rd'' (por ejemplo ''interval.Rd'') y escribir directamente la ayuda. Se aconseja que los ficheros de ayuda contengan siempre los mismos apartados (nombre de la función, parámetros, resultados, etc.), como se puede ver en el [[Media:source.rar | código fuente]] del [[Media:traba_1.4-1.zip | paquete Traba]].


=== Construcción de paquetes ===
=== Construcción de paquetes ===


Una vez tenemos el código fuente tanto de las funciones como de las ayudas que deseamos incluir en el paquete, debemos efectuar una serie de procedimientos para empaquetarlo de forma que sea directamente instalable en R. Dicho proceso se explica detalladamente [http://acrida.2mydns.com/wikitraba/arxius/paquets.pdf aquí].
Una vez tenemos el código fuente tanto de las funciones como de las ayudas que deseamos incluir en el paquete, debemos efectuar una serie de procedimientos para empaquetarlo de forma que sea directamente instalable en R. Dicho proceso se explica detalladamente [[Media:paquets.pdf | en este ''pdf'']].


== Exportación e integración con [[Latex|LaTeX]] ==
== Exportación e integración con [[Latex|LaTeX]] ==
Línia 1.025: Línia 1.093:
R permite la exportación de objetos para su inclusión en los documentos generados en [[Latex|LaTeX]].
R permite la exportación de objetos para su inclusión en los documentos generados en [[Latex|LaTeX]].


=== Sistema pedestre ===
=== Sistemas pedestres ===


Una forma rápida de exportar objetos a [[Latex|LaTeX]] es mediante la [http://cran.r-project.org/doc/packages/xtable.pdf librería ''xtable''] (tipo 3). Se trata de construir en R la tabla que se quiera exportar, y luego:
Una forma rápida de exportar objetos a [[Latex|LaTeX]] es mediante la [http://cran.r-project.org/doc/packages/xtable.pdf librería xtable] (tipo 3). Se trata de construir en R la tabla que se quiera exportar, y luego:


  library(xtable)
  library(xtable)
Línia 1.033: Línia 1.101:


Esto imprimirá por pantalla el código de la tabla en formato [[Latex|LaTeX]], que podrá ser copiado y pegado a nuestro fichero .tex. Este sistema, aunque pedestre, evita tener que reconstruir las tablas cada vez que se cambian los datos, como ocurre en el (terriblemente pedestre) marco tradicional ([http://www.spss.com $P$$] + M$ Excel + [http://office.microsoft.com/en-us/FX010857991033.aspx M$ Word]).
Esto imprimirá por pantalla el código de la tabla en formato [[Latex|LaTeX]], que podrá ser copiado y pegado a nuestro fichero .tex. Este sistema, aunque pedestre, evita tener que reconstruir las tablas cada vez que se cambian los datos, como ocurre en el (terriblemente pedestre) marco tradicional ([http://www.spss.com $P$$] + M$ Excel + [http://office.microsoft.com/en-us/FX010857991033.aspx M$ Word]).
La función presenta diversos posibles argumentos, consultables mediante:
library(xtable)
?xtable
Otra forma pedestre de exportar objetos a [[Latex|LaTeX]] es mediante la [http://cran.r-project.org/doc/packages/Hmisc.pdf librería Hmisc] (tipo 3). Su función ''latex'' genera archivos '''.tex''' que contienen el código [[Latex|LaTeX]] del objeto exportado:
library(Hmisc)
latex(objeto,file="nombrearchivo.tex")
Si no se especifica una ruta, el archivo se generará en el ''working directory'', que se puede conocer con:
getwd()
y cambiar mediante:
setwd("nuevaruta")


=== Sistema fino ===
=== Sistema fino ===
Línia 1.040: Línia 1.126:
== Exportación a formato HTML ==
== Exportación a formato HTML ==


=== Sistema pedestre ===
=== Sistemas pedestres ===


La [http://cran.r-project.org/doc/packages/xtable.pdf librería ''xtable''] (tipo 3) es capaz de exportar objetos tabulares a formato HTML. Para ello debemos realizar los siguientes pasos:
La [http://cran.r-project.org/doc/packages/xtable.pdf librería xtable] (tipo 3) es capaz de exportar objetos tabulares a formato HTML. Para ello debemos realizar los siguientes pasos:


  library(xtable)
  library(xtable)
Línia 1.050: Línia 1.136:
Esto imprimirá por pantalla el código de la tabla en formato HTML, que podrá ser copiado y pegado a nuestro fichero .htm.
Esto imprimirá por pantalla el código de la tabla en formato HTML, que podrá ser copiado y pegado a nuestro fichero .htm.


=== Sistema un poco más refinado ===
La función presenta diversos posibles argumentos, consultables mediante:
 
library(xtable)
?xtable
 
Otra forma pedestre de exportar objetos a formato HTML es mediante la [http://cran.r-project.org/doc/packages/Hmisc.pdf librería Hmisc] (tipo 3). Su función ''html'' genera archivos '''.html''' que contienen el código del objeto exportado:
 
library(Hmisc)
html(objeto,file="nombrearchivo.html")
 
Si no se especifica una ruta, el archivo se generará en el ''working directory'', que se puede conocer con:
 
getwd()
 
y cambiar mediante:
 
setwd("nuevaruta")
 
=== Sistema un poco más refinado (no mucho) ===


La [http://cran.r-project.org/doc/packages/R2HTML.pdf librería ''R2HTML''] (tipo 3) contiene distintas funciones para la publicación de resultados en formato web. Su sintaxis, un poco compleja, se especifica a continuación a través de un ejemplo:
La [http://cran.r-project.org/doc/packages/R2HTML.pdf librería ''R2HTML''] (tipo 3) contiene distintas funciones para la publicación de resultados en formato web. Su sintaxis, un poco compleja, se especifica a continuación a través de un ejemplo:


  ''ejemplo''
  library(R2HTML)
HTMLStart(file.path("/home/acrida/Desktop"),HTMLframe=FALSE, Title="Probando",autobrowse=FALSE)
as.title("A ver cómo sale")
x <- 1
y<- 2
x+y
HTMLStop()
 
El ejemplo anterior va a generar el fichero ''index.htm'' en el escritorio de un sistema GNU/Linux.
 
Las múltiples posibilidades de estas funciones se pueden consultar en:
 
library(R2HTML)
?HTMLStart
?HTML


=== Sistema aún más refinado ===
=== Sistema aún más refinado ===


La función [[Sweave]], presentada en un [[R#Sistema_fino apartado anterior]] por su integración con [[Latex|LaTeX]], permite también la integración entre R y HTML de una forma totalmente limpia y reproducible.
La función [[Sweave]], presentada en un [[R#Sistema_fino| apartado anterior]] por su integración con [[Latex|LaTeX]], permite también la integración entre R y HTML de una forma totalmente limpia y reproducible. Es el sistema recomendado para la publicación de resultados en formato HTML. Explicado en el [[Sweave|artículo correspondiente]].
 
=== Sistema tan refinado que ya no sé ni como llamarle ===
 
''I've seen things you people wouldn't believe'' ([http://en.wikiquote.org/wiki/Blade_Runner#Replicants Roy Batty, Blade Runner]).
 
Se trata de [http://franklin.imgen.bcm.tmc.edu/R.web.servers/ distintos sistemas] que permiten que usuarios remotos interactuen por intranet o internet con nuestro sistema R (instalado en un [[Servidor| servidor]]) a través de una ''interface'' web, es decir sólo usando su [[Firefox | navegador]]. Esto permite a los usuarios remotos:
 
* Introducir datos en un formulario que hayamos diseñado nosotros, que pasará estos datos como argumentos a funciones de R que devolverán el ''output'' por pantalla al usuario remoto. Una de las formas más sencillas de realizarlo es mediante [http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic/firth/software/cgiwithr/ CGIwithR]. [http://www.traba.org/derivacions/deriv.html Un ejemplo propio] y otro [http://www.traba.org/encuesta/resultats.html un poco más avanzado].
 
* Analizar nuestras bases de datos introduciendo ellos mismos código de R a través del [[Firefox|navegador]]. Se puede realizar, [http://franklin.imgen.bcm.tmc.edu/R.web.servers/ entre otros], mediante el [http://www.rpad.org/Rpad/ paquete RPad], que permite además su uso como [[R#GUI.27s |GUI]] si se realiza una instalación sólo local .
 
La instalación y puesto en funcionamiento de estos sistemas supera los objetivos de este artículo. [[Servidor|Nuestra guía de configuración de un servidor]] contiene algunas pistas sobre la instalación de [http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic/firth/software/cgiwithr/ CGIwithR].


=== Sistema tan refinado que ya no sé ni como llamarle: [[RPad]] ===
Las páginas web correspondientes a cada proyecto contienen abundante información sobre el tema.


''I've seen things you people wouldn't believe'' [http://en.wikiquote.org/wiki/Blade_Runner#Replicants Roy Batty, Blade Runner].
=== Y aún más: integración con [[MediaWiki]] ===


Todo explicado [[RPad aquí]].
En 2006 aparece una extensión de [[MediaWiki]] (el software que soporta la [http://en.wikipedia.org Wikipedia] y esta [[Portada|WikiTraba]] entre muchos otros proyectos) que permite insertar sintaxis de R en las páginas de un proyecto ''wiki''. Esta extensión está instalada en la [[Portada|WikiTraba]] y se explica en su [[WikiTraba:Ajuda#Introducir_programas_de_R|Ayuda]].


== Un ejemplo casi-real ==
== Un ejemplo casi-real ==
Línia 1.070: Línia 1.200:
Se parte de dos tablas distintas en formato .dbf exportadas desde [http://office.microsoft.com/es-hn/FX010858003082.aspx M$ Excel], y que se pueden descargar desde los siguientes enlaces:
Se parte de dos tablas distintas en formato .dbf exportadas desde [http://office.microsoft.com/es-hn/FX010858003082.aspx M$ Excel], y que se pueden descargar desde los siguientes enlaces:


* La tabla [http://acrida.2mydns.com/wikitraba/arxius/baixes.dbf baixes.dbf] contiene un registro para cada una de las bajas laborales concedidas durante 2004 en una empresa X (a leer en catalán). Puede haber más de una baja por individuo. La base contiene la identificación del trabajador, el tipo de baja (incapacidad transitoria o baja maternal) y las fechas de inicio y finalización de la baja.
* La tabla [[Media:baixes.dbf | baixes.dbf]] ('''borrado por error, si alguien lo tiene que [[Especial:Upload|lo suba]]''') contiene un registro para cada una de las bajas laborales concedidas durante 2004 en una empresa X (a leer en catalán). Puede haber más de una baja por individuo. La base contiene la identificación del trabajador, el tipo de baja (incapacidad transitoria o baja maternal) y las fechas de inicio y finalización de la baja.


* La tabla [http://acrida.2mydns.com/wikitraba/arxius/plantilla.dbf plantilla.dbf] contiene los datos referentes a todos los trabajadores de la empresa X, con un sólo registro por individuo. Contiene la identificación del trabajador (permite el cruce con bajas.dbf), su fecha de nacimiento, el sexo y sus datos laborales (tipo de contrato, lugar de trabajo y categoría laboral).
* La tabla [[Media:plantilla.dbf | plantilla.dbf]] contiene los datos referentes a todos los trabajadores de la empresa X, con un sólo registro por individuo. Contiene la identificación del trabajador (permite el cruce con bajas.dbf), su fecha de nacimiento, el sexo y sus datos laborales (tipo de contrato, lugar de trabajo y categoría laboral).


Las tablas provienen de un ejemplo real, pero se han eliminados todos los datos que pudieran permitir identificar a los individuos.
Las tablas provienen de un ejemplo real, pero se han eliminados todos los datos que pudieran permitir identificar a los individuos.
Línia 1.404: Línia 1.534:


[http://cran.r-project.org/doc/contrib/curso-R.Diaz-Uriarte.pdf Otra clase] en castellano.
[http://cran.r-project.org/doc/contrib/curso-R.Diaz-Uriarte.pdf Otra clase] en castellano.
[http://www.ci.tuwien.ac.at/Conferences/useR-2004/program.html Las diapos] del último congreso de R (Viena 2004).


== Reference card ==
== Reference card ==
Línia 1.413: Línia 1.545:
[http://cran.r-project.org/doc/contrib/Short-refcard.pdf]
[http://cran.r-project.org/doc/contrib/Short-refcard.pdf]


[http://www.rpad.org/Rpad/R-refcard.pdf]
[http://www.rpad.org/Rpad/R-refcard.pdf] Quizás me quedaría con esta...


[http://www.math.montana.edu/~jimrc/classes/Rrefcard.pdf]
[http://www.math.montana.edu/~jimrc/classes/Rrefcard.pdf]

Menú de navegació