Primeros pasos con R

Última modificación por admin el 2020/05/23 18:08

  1. R en línea de comando (la consola de R)
  2. La memoria de R (Named Storage), y la memoria de R entre diferentes sesiones
  3. Funciones de R
  4. Abrir ficheros y guardar resultados (texto/imágenes)
  5. Video: lectura de datos en R y manipulaciones básicas

R en línea de comando (la consola de R)

La consola de R se empieza haciendo click sobre el icono de R que el setup program de instalación (si es Microsoft Windows) habrá dejado en el escritorio.

En la consola de R el usuario puede teclear instrucciones directamente justo detrás del símbolo ´>´. Como ejemplo básico, usamos R a modo de calculadora y también para que imprima todos los números del 1 al 20:

> 7*6

[1] 42

> 12_12

[1] 24

> 1:20

 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20

La ventaja de interactuar con R mediante línea de comandos es que te da toda la flexibilidad del mundo. Si estuviéramos usando la interfaz gráfica conocida por R Commander (Rcmdr) estaríamos limitados a las funciones que vienen con la distribución de Rcmdr. Por lo tanto, si queremos programar algo que no ha hecho nadie antes, la única forma de hacerlo es a través de la línea de comandos en la consola de R o en una cómoda interfaz gráfica tipo RStudio.


(This video is hosted on YouTube)

Para salir de la consola de R en cualquier momento y por lo tanto finalizar la sesión:

> q()

Save workspace image? [y/n/c]:

El entorno R preguntará si queremos guardar el entorno de trabajo (workspace), que es el historial de todos los comandos que hemos usado en la sesión actual más las librerías (paquetes) de R externas que hayamos iniciado. Rara vez conviene guardar el workspace; si se desea guardar el trabajo que se ha hecho lo más recomendable es hacer una copia de todos los comandos que hemos ido utilizando.

La memoria de R (Named Storage), y la memoria de R entre diferentes sesiones

El workspace de R donde trabajamos tiene un sistema de asignación de memoria de tipo global (global environment), es decir que almacena todos los resultados que vamos computando, almacena todas las variables que vamos nombrando, y también recuerda todas las funciones externas que hemos instalado e iniciado. Todo ésto esta disponible durante toda la sesión de R, es decir, hasta que cerremos la sesión con el comando q() y le digamos que no queremos guardar una copia del workspace. Esto tiene una clara ventaja, pero también una desventaja que no es tan fácil de apreciar: si la memoria RAM de nuestro ordenador es limitada y hemos acabado un cálculo pesado y con muchos datos es recomendable cerrar la sesión y volver a abrirla para liberar memoria que podemos necesitar para otras tareas.

La función dump() nos permite guardar datos entre sesiones, sin tener que ocupar la memoria RAM con más datos que los que especifiquemos:

> a <- "hola amigos"
> dump ("a","a.R")
> q()
Save workspace image? [y/n/c]: n
.
.
.
(entramos en una nueva sesion:)
.
.
.
> source ("a.R")
> a
[1] "hola amigos"

Funciones de R

En R casi todo se hace ayudándose de funciones que o vienen con la distribución estándar de R, que se pueden instalar cómodamente a través de la línea de comandos, o también funciones que uno mismo puede programar (normalmente pequeñas funciones que escribimos según necesitamos para ejecutar cualquier otra función varias veces y con diferentes datos).

Para pedir documentación sobre una función determinada, como la que calcula la media aritmética, usamos help():

> help(mean)

Si necesitamos ejemplos detallados (built-in examples):

> example(mean)

mean> x <- c(0:10, 50)

mean> xm <- mean(x)

mean> c(xm, mean(x, trim = 0.10))
[1] 8.75 5.50

Luego, si no conocemos el nombre de la función que estamos buscando pero queremos saber si existe alguna función que haga algo determinado, podemos teclear esto:

> help.search("optimization")

Help files with alias or concept or title matching optimization using
fuzzy matching:


boot::print.simplex     Print Solution to Linear Programming Problem

  Concepts: Optimization

boot::simplex           Simplex Method for Linear

Programming Problems

  Concepts: Optimization

boot::simplex.object    Linear Programming Solution
Objects

  Concepts: Optimization

stats::constrOptim      Linearly Constrained
Optimization

  Concepts: Optimization

stats::glm.control      Auxiliary for Controlling
GLM Fitting

  Concepts: Optimization

stats::nlm              Non-Linear Minimization

  Concepts: optimization, Optimization

stats::nlminb           Optimization using PORT
routines

  Concepts: Optimization

stats::optim            General-purpose Optimization

  Concepts: Optimization

stats::optimize         One Dimensional Optimization

  Concepts: Optimization

stats::uniroot          One Dimensional Root (Zero)
Finding

Y para cuando estamos tan absolutamente perdidos que hasta hemos perdido la cuenta de las funciones externas a la distribución estándar de R que hemos instalado, help.start() abre un navegador de internet donde se puede consultar todos los paquetes que hay instalados en la máquina (localmente).

> help.start()

starting httpd help server ... done

If the browser launched by '/usr/bin/open' is already running, it is

   *not* restarted, and you must switch to its window.

Otherwise, be patient ...

Para hacer esto mismo en línea de comandos:

> ip <- as.data.frame(installed.packages()[,c(1,3:4)])

> rownames(ip) <- NULL

> ip <- ip[is.na(ip$Priority),1:2,drop=FALSE]

> print(ip, row.names=FALSE)

Finalmente, RSiteSearch() hace una búsqueda en la lista de correo (mailing list) de R-help, entre otros sitios.

> RSiteSearch("monte carlo simulation")

A search query has been submitted to http://search.r-project.org

The results page should open in your browser shortly

Abrir ficheros y guardar resultados (texto/imágenes)

La mayoría de los datasets son una o más columnas de datos (formato case-by-variable), como esta matriz de 3x4 que llamaremos datos.txt. La función read.table() es la llave universal para abrir ficheros de tipo texto:

datos.txt
_________

  x  y  z

61 13  4

175 21 18

111 24 14

124 23 18
> tabla1 <- read.table ("datos.txt",header=TRUE,sep='\t')

> tabla1

    x  y  z

1  61 13  4

2 175 21 18

3 111 24 14

4 124 23 18

Nota: header=TRUE indica que el fichero tiene una cabecera, es decir, una fila que te indica los nombres de las columnas (x, y, z); sep='\t' indica que las columnas en el fichero de texto están separadas por tabs. La separación por tabs es el formato por defecto que asume read.table(), así que sólo se índica aquí para ilustrar la posibilidad de leer ficheros cuyas columnas estén separadas por espacios (sep=' ') o por puntos y comas (sep=';') o comas (sep=',').

Para guardar resultados de tipo texto y que no desaparezcan al cerrar la sesión de R, la función sink() vierte todo el output al fichero indicado desde el momento en que se invoca a la función sink(). En el siguiente ejemplo creamos un vector de 6 números, y el cálculo del valor medio se vierte a un fichero externo al entorno R llamado radiacion.media.txt:

> radiacion<-c(40,45,50,37,42,48)

> sink("radiacion.media.txt")

> mean(radiacion)
.
.
.

diegos-MacBook-Air:~ diego$ more radiacion.media.txt

[1] 43.66667

Si se desea anular la función sink(), ejecutar dev.off():

> dev.off()    ## anula a sink() y los resultados vuelven a mostrarse en la pantalla

Finalmente para guardar todas las imágenes generadas durante una sesión, save.image() funciona igual que sink() y guardará todas las imágenes generadas a partir del momento en que se ejecute la función. Al igual que con sink(), la función dev.off() anula a save.image():

> save.image ("imagenes.RData")
.
.
.
> dev.off()    ## anula a sink() y los resultados vuelven a mostrarse en la pantalla

Video: lectura de datos en R y manipulaciones básicas


(This video is hosted on YouTube)

Etiquetas:
Creado por admin el 2016/07/14 02:12