Acerca de… guardar gráficos en R

Hola.

Alguien llegó al blog el otro día buscando como salvar gráficos en R, yo lo hago así:

Primero escribo:

jpeg("imagen.jpg")

Esta orden, comando o como se llame, lo que hace es abrir una cosa que llaman “graphic device” donde pone el resultado de las ordenes de gráficos que le demos a continuación. Por ejemplo:

plot(c(1:20),c(20:40))

Normalmente, si escribimos plot(loquesea), automáticamente vemos el resultado en la pantalla, pero como antes hemos puesto el jpeg() ahora no vemos nada.

Solo cuando tecleamos…

dev.off()

el R nos crea una imagen llamada imagen.jpg en el directorio de trabajo. Esta imagen contiene el resultado de la orden plot() o la que hayamos utilizado.

También podemos salvar el script, escribimos las tres cosas seguidas en un archivo de texto y cada vez que queramos hacer este gráfico o uno parecido solo tenemos que modificar lo que queramos cortar y pegar en la consola.

jpeg("imagen.jpg")
plot(c(1:20),c(20:40))
dev.off()

La orden jpeg() tiene unos cuantos parámetros como:

nombre de archivo: siempre entre comillas, en este caso imagen.jpg

height= y width=: altura, anchura, en pixels

quality=: para elegir la calidad ds compresión del jpg. Entre 0 y 100.

entre otros.

Podemos cambiar jpeg() por bmp(), png() o tiff(),pero en cada caso hay que consultar la ayuda

?bmp

o

help(bmp)

Para ver que parámetros podemos modificar.

Saludos.

P.D.: He encontrado otro software de referencias bibliográficas open source. He añadido un comentario en la entrada sobre software para referencias bibliográficas.

Edito (09/02/2009): he encontrado algunos errores en el texto, faltaba algún paréntesis y había alguna falta de ortografía… no debía ser  muy importante por que nadie ha dicho nada.

Acerca de… cargar datos en R

Hola.

Una explicación sobre como cargar datos en R a partir de hojas de cálculo. Hay más formas, pero yo suelo usar esta.

He creado en calc una hoja de cálculo con 5 columnas llamada dades.ods, tiene dos columnas llamadas factor1 y factor2 y tres columnas con los datos.

pantalazo dades.ods

Leamos esto con el R:

Se puede leer directamente de .ods o .xls usando read.dbf, pero Nunca sabemos de donde van a venir los datos así que lo explico para leerlos desde un archivo de texto .csv que se puede crear desde cualquier plataforma, o casi.

Pasamos dades.ods a .csv mediante Guardar como (también se puede hacer con MSExcel)

Antes de leerlo con R miradlo con un editor de texto para ver que la separación por campos está bien hecha, el texto está entre comillas, los decimales con puntos, etc. Si no hacemos bien esto último y los decimales son comas, el R pensará que ahí hay un cambio de campo y nos haremos un lío.

Una vez comprobado esto leemos el archivo dades.csv desde R:

dades->read.table("dades.csv",sep=",",header=T)

le decimos que bajo el nombre dades nos ponga el contenido de dades.csv, que los campos estan separados por comas (sep=”,”) y que nuestro archivo tenía cabeceras (header=T). Al crear el .csv podemos especificar esto.

Como veis no he especificado ruta, supongo que dades.csv está en el directorio de trabajo.

Para ver el contenido:

> summary(dades)
 factor1    factor2         datos1          datos2           datos3
 a:20    Min.   :1.00   Min.   : 0.32   Min.   : 12.17   Min.   : 1.00
 b:20    1st Qu.:1.75   1st Qu.:25.35   1st Qu.:263.51   1st Qu.:10.75
         Median :2.50   Median :54.05   Median :476.13   Median :30.00
         Mean   :2.50   Mean   :51.88   Mean   :501.87   Mean   :30.00
         3rd Qu.:3.25   3rd Qu.:76.39   3rd Qu.:725.57   3rd Qu.:49.25
         Max.   :4.00   Max.   :99.96   Max.   :996.24   Max.   :59.00

o

> str(dades)
'data.frame':   40 obs. of  5 variables:
 $ factor1: Factor w/ 2 levels "a","b": 1 1 1 1 1 1 1 1 1 1 ...
 $ factor2: int  1 1 1 1 1 2 2 2 2 2 ...
 $ datos1 : num  62.04 0.82 73.25 60.96 52.31 ...
 $ datos2 : num  504 996 725 259 338 ...
 $ datos3 : int  1 2 3 4 5 6 7 8 9 10 ...

Nos ha creado un dataframe llamado dades.

Ahora hay que decirle qué columnas son factores y cuáles son datos, ya que los que eran texto (factor1) sí que los ha reconocido como factores, pero los que eran números (factor2) nos los ha reconocido como número y en el summary nos ha hecho la estadística.

dades$factor2<-as.factor(dades$factor2)

Le decimos que cree un factor nuevo llamado dades$factor2 que será el mismo dades$factor2 pero convertido en factor.

Si hacemos ahora el summary:

> summary(dades)
 factor1 factor2     datos1          datos2           datos3
 a:20    1:10    Min.   : 0.32   Min.   : 12.17   Min.   : 1.00
 b:20    2:10    1st Qu.:25.35   1st Qu.:263.51   1st Qu.:10.75
         3:10    Median :54.05   Median :476.13   Median :30.00
         4:10    Mean   :51.88   Mean   :501.87   Mean   :30.00
                 3rd Qu.:76.39   3rd Qu.:725.57   3rd Qu.:49.25
                 Max.   :99.96   Max.   :996.24   Max.   :59.00

tenemos tres variables datos 1-3 y dos factores: factor1 con dos niveles a y b y factor2 con 4 niveles 1, 2, 3, 4.

Saludos.

Acerca de… Actualizaciones de R y Ubuntu

Hola.

No he escrito ninguna entrada acerca de como instalar el R en Ubuntu, la verdad es que hay información sobre eso y no me parece bien llenar el blog con información duplicada. Por ejemplo, aquí o aquí, lo explica muy bien.

Pero os voy a hablar de un tema relacionado y de un problema que me ha ocurrido a mi.

¿Qué pasa si cambiamos la versión de Ubuntu? Pues que habrá que cambiar los repositorios del R adecuados a nuestra versión para que se nos siga actualizando correctamente.

Primero debemos ir a orígenes de software:

Sistema – orígenes de Software – Pestaña software de terceros

origenes_de_software

Si el R ya está instalado pondrá algo parecido a: …cran.r-project.org/bin… lo que tengo yo resaltado en el ejemlo.

Es esta la que tenemos que editar (botón editar, con un lápiz dibujado) o la que tenemos que añadir, botón añadir (con un signo + grandote)

Aquí empieza el lío. Le damos a editar y nos pide:

Tipo.

Lo dejamos en binario. Nada de sources, que de esto no entiendo.

URI.

ponemos:

http://cran.es.r-project.org/ que es el mirror

+

/bin/linux/ubuntu

Yo he puesto http://cran.es.r-project.org/ por que estoy en España y es el mirror en España. Podemos elegir entre los mirror que queramos en esta web hay que buscar el más próximo a nuestra zona o el que más confianza nos de.

Distribución.

La que tengamos de Ubuntu (ver Sistema – Acerca de Ubuntu), si no, podemos verlo en la wikipedia donde pone Lanzamientos, en mi caso gutsy.

Quedará como se ve en la imagen:

http://cran.es.r-project.org/bin/linux/ubuntu gutsy/

Si os fijáis yo lo tengo mal, hay repositorios que no corresponden con mi versión, pone Edgy en lugar de Gutsy, por eso me daba errores de vez en cuando, cundo intentaba actualizar esos paquetes.

Le damos a Aceptar.

Cerramos Orígenes del Software pinchando en cerrar.

Y ya está… pues no, entonces nos dice:

La información sobre el software disponible está obsoleta.

Por que hemos cambiado los enlaces a los Repositorios donde ubuntu busca para ver si los programas, paquetes, etc. están al día.

Empezará a descargar un montón de cosas… y puede que de un error sobre la pubkey…

key_r_peroqueseto

¿Mande?

Esto se arregla desde la consola tecleando esto (lo siento, pero de momento no tengo muy claro que es):

gpg –keyserver subkeys.pgp.net –recv-key E2A11821

gpg -a –export E2A11821 | sudo apt-key add –

Al final de la historia el gestor de actualizaciones se pondrá a hacer su trabajo (puede estar aparentemente inactivo durante un rato) y nos saldrá en icono de actualizaciones disponibles (a cada uno donde le salga).

Y eso es todo.

Podéis encontrar más detalles sobre todo esto en la web del R

Saludos.

Acerca de… más información sobre estadistica y R

Para estadísticos Ubunteros.

Un hilo en ubuntu-es acerca de programas para estadístca en Ubuntu.

Mi amigo Dani en su web tiene algunos enlaces para geoestadística en R, buscad en el último párrafo del apartado Ecología de plantas. La web es un poco rara, hay que ir hacia la derecha, no hacia abajo.

Por cierto, he leído el rumor de que hay versión de SPSS para Linux… parece que la versión 17.0. Pero no olvidéis que el R es más emocionante.

Y de regalo dos blogs en wordpress sobre estadística y/o R.

Numero Rojo

Este me parece que se ha quedado por el camino, pero estaré atento a ver si actualiza.

Análisis y comunicación de datos cuantitativos

Este segundo lo hemos pillado con la entrada “nos mudamos”, que mala pata.

He ido a visitar su nuevo site y me he encontrado con frases como estas:

“La diagonal principal de la matriz de covarianzas de un vector aleatorio recoge las varianzas de los componentes del vector aleatorio”

“…sea el modelo teórico de regresión Y = X \beta + \varepsilon. Si las hipótesis de Gauss-Markov se satisfacen, entonces el estimador de mínimos cuadrados B=(X^t X)^{-1} X^t Y…”

¡Lo flipo! Supongo que entre tanto galimatías habrá algún post que podamos leer.

Almost sure convergence.

Este empieza, con una entrada sobre un test de tontería… lo seguiré y a ver que tal.

Espero que os sea útil.

Saludos.

Acerca de… las comillas.

¡¡Cuando tenemos un nombre de directorio con espacios hay que ponerlo entre comillas!!

Me explico, hacía tiempo que me frustraba el hecho de que en la consola no podía acceder a directorios cuyos nombres tuvieran espacios.

Bueno, pues ya está claro, si pones:

cd nombre de directorio

te dirá

bash: cd: Archivos: No existe el fichero ó directorio

pero si pones:

cd "nombre de directorio"

entra en el directorio que quieres.

Esto supongo que para los Linuxeros es obvio. Pero para mi no. Y es importante, sobretodo desde el momento en que en mi partición de windows hay unas cuantas carpetas llena de cosas de trabajo de R, llenas a su vez de espacios en sus nombres. Así que hasta que descubrí esto en el R me volvía loco para cambiar el directorio de trabajo.

Lo he añadido al pdf chuleta de R.

Saludos.

Edito (17/09/2009):  Ya no es un pdf.