Sei sulla pagina 1di 13

1.

Instalar R en el ordenador
El software R es totalmente libre y está disponible para Linux, Mac OS X y Windows.
http://cran.r-project.org (Enlace de descarga del software R)

Existen distintos visualizadores para R. Es recomendable utilizar el R estudio.


https://www.rstudio.com/ (Enlace descarga visualizador R Studio)

2. Introducción a R. Funciones básicas


Comando asignar valor a objeto (También
X<-objeto como =)

/ Para rutas absolutas y relativas (No usar \)


Para borrar todos los objetos del espacio de
rm(list=ls(all=T)) trabajo

*TRUE/FALSE tienen también las abreviaciones T/F

 R no declara variables en el código. Se puede asignar cualquier tipo de dato a una


variable sin necesidad de declararlo. Las variables creadas en R contienen cualquier
tipo de dato conocido como objeto. En R Studio aparece un listado en la ventana
Global Environment donde aparecen los objetos que hay en uso.
 R hace distinción entre caracteres Mayúscula/Minúscula

Objeto: Cualquier cosa que se le pueda asignar un valor (int, double, string, vector, matrix…)

Nota: Para las funciones de ayuda sería equivalente:

help(“name”)  ?name
help.search(“name”)  ??name
3. Input/Output en R
Input R statements and Output Text
Input statement from R script
Ejecuta script* de R. Si no se especifica ruta
source(“filename.R”) se supone que el archivo está en el actual
directorio de trabajo
Text output
Redirige la salida al archivo filename. Si
sink(“filename”) existe por defecto lo sobrescribe

Activando esta opción se añade texto al


sink(“filename”,append=TRUE) archivo en lugar de sobrescribir

sink(“filename”,split=TRUE) La salida es dual. Archivo filename y pantalla

Al volver a escribir el comando sink() sin


sink() opciones devolvemos la salida a pantalla

*En R un script es un archivo guardado con una serie de líneas de programación


Graphic Output
Igual que sink(“filename”) redirige el texto de la consola a un archivo las siguientes
funciones redirigen los gráficos a los siguientes tipos de archivos.

Para devolver la salida de gráficos a R Studio escribir el comando:

dev-off()

Ejemplo ilustrativo Input/Output con lo anteriormente descrito en el apartado


4. Paquetes en R
Uno de los grandes potenciales de R es que cuenta con muchos paquetes opcionales para
instalar (paquetes estadísticos, de datos…)

La fuente para descargar los paquetes es: http://cran.r-project.org/web/packages

Library statements
Muestra donde se encuentran las librerías
.libPaths() instaladas

Carga una librería determinada. Hay que


library(“name”) cargarlas siempre antes de usar funciones de
la librería

Te informa de que librerías están


search() actualmente cargadas y listas para usar

install.packages(“name”) Descarga e instala una librería determinada

Muestra información de los paquetes


installed.packages() instalados

update.packages() Actualizada las librerías instaladas

help(package=”package_name”) Ayuda rápida del paquete

help(“package_name”) Ayuda detallada del paquete

 Buscar en internet información oficial sobre el paquete:

https://cran.r-project.org/web/packages/library_name
Se pueden consultar dos cosas:

o Vignette (recomendable para empezar. Incluye ejemplos y explicaciones)


o Reference manual (Consulta manual usuario libreria)

 En Google buscar nombre_libreria rpubs: Muestra publicaciones no oficiales sobre


librerias de R.
 En Google stackoverflow. Foro para programación de todos los lenguajes. Tiene
subforos dedicados a estadística, matemáticas…
5. Ejecución por batch
Existen dos posibles formas de ejecutar código en R.

 Haciendo uso de R Studio y escribiendo el código en la ventana de script o en la


consola.
 Haciendo una ejecución batch de script de R.

6. Modo de programación en R
R utiliza un modo de programación funcional en lugar de programación imperativa. Está
basado en el uso de funciones matemáticas, en contraste con la programación imperativa, que
enfatiza los cambios de estado mediante la mutación de variables.

En la práctica, la diferencia entre una función matemática y la noción de una "función"


utilizada en la programación imperativa, es que las funciones imperativas pueden tener
efectos secundarios, como cambiar el valor de cálculos realizados previamente.

Por esta razón carecen de transparencia referencial, es decir, la misma expresión sintáctica
puede resultar en valores diferentes en varios momentos de la ejecución del programa. Con
código funcional, en contraste, el valor generado por una función depende exclusivamente de
los argumentos alimentados a la función.

Al eliminar los efectos secundarios se puede entender y predecir el comportamiento de un


programa mucho más fácilmente. Ésta es una de las principales motivaciones para utilizar la
programación funcional.

7. Dataset
R tiene distintas estructuras de almacenamiento de datos (objetos) para realizar estudios.
Puede hacer uso de:

 Vectors
 Matrix
 Factors
 data.frame
 data.table
 List

La introducción de datos puede realizarse manualmente en el entorno R o haciendo uso de


fuentes externas como base de datos SQL, archivos Excel, csv…
Una vez introducidos los datos en objetos reconocibles por R, generalmente se agregan
etiquetas descriptivas para identificar variables dentro del conjunto de datos. Un ejemplo
sencillo sería tener identificadores para las columnas de una matriz de datos identificando
variables con un conjunto de datos distribuidos por filas (observaciones).

8. Data structure
Las principales estructuras de datos utilizadas en R son las siguientes:

En R un objeto es todo aquello que puede ser almacenado en una variable (constantes,
estructuras de datos, funciones e incluso gráficos).

El objeto viene definido por su modo (describe como está el objeto almacenado en R) y su
clase (informa a funciones genéricas como plot() cómo manejar el objeto)

8.1. Vectors
Los vectores pueden almacenar un único tipo de objeto pudiendo ser datos:

 Numéricos
 Caracteres
 Lógicos

Se trata de Arrays unidimensionales en los cuales podemos posteriormente seleccionar


elementos específicos del vector (x1, x2, x3, …)
Vectors statements
Define un vector guardándolo en una
name_vec<-c(obj1, obj2, ..) variable

vec_num<-(1,2,3) Vector que contiene los caracteres 1, 2 y 3

vec_num<-c(2:4) Vector que contiene los números 2, 3 y 4

vec_string<-(“a”,”b”,”c”) Vector que contiene los caracteres a, b y c

Vector que contiene los valores lógicos


vec_string<-(T,F,T) TRUE, FALSE, TRUE

Elemento 3 del vector guardado en


nam_vec[3] name_vec

name_vec[2:4] Elementos 2, 3 y 4 del vector

name_vec[c(2, 4)] Elementos 2 y 4 del vector

*Nota: el poner 1:100 en R es lo mismo que escribir el conjunto de números enteros de 1 a


100

8.2. Matrix
Una matriz es un Array bidimensional. Pueden almacenar un único tipo de objeto pudiendo
ser datos:

 Numéricos
 Caracteres
 Lógicos

Definición de la función crear matriz y descripción de sus elementos:

Función:

name_matrix<-matrix(vector, nrow=rownumber, ncol=colnumber,


byrow=logical_value, dimnames=list(vector_rownames,
vector_colnames))
descripción de sus elementos:

 vector  Vector de datos a introducir en la matriz


 nrow=  Número de filas de la matriz
 ncol=  Número de columnas de la matriz
 byrow=TRUE  Elementos ordenados por fila
 byrow=FALSE  Elementos ordenados por columnas
 dimnames=list(vec_rownames, vec_colnames)  lista que contiene los
vectores que definen los nombres de las filas y de las columnas

*Notas:

 Si no se especifica valor a byrow por defecto R ordena por columnas.


 Es importante dimensionar bien el tamaño de la matriz.
 Puede especificarse únicamente el número de fila o columna y R
 Si dimensionamos mal:
o Faltan elementos: R rellenará los huecos duplicando elementos devolviendo
además un warning
o Sobran elementos: R guardará únicamente los elementos que admita por
dimensiones la matriz devolviendo además un warning

Matrix statements
name_matrix<-matrix() Define una matriz guardándola en una
variable

Selecciona el objeto ubicado en la fila y


name_matrix[row, col] columna introducidas

Selecciona todos los elementos de la


name_matrix[, col] columna especificada

Selecciona todos los elementos de la fila


name_matrix[row, ] especificada

rowSums()

colSumns()

cbind()

rbind()
8.3. Arrays
Un Array puede traducirse en una matriz de n-dimensionesl. Pueden almacenar un único tipo
de objeto pudiendo ser datos:

 Numéricos
 Caracteres
 Lógicos

Definición de la función crear array y descripción de sus elementos:

Función:

name_array<-array(vector, dimensions, dimnames=lis())


descripción de sus elementos:

 vector  Vector de datos a introducir en el array


 dimensions  Dimensiones del array
 dimensions  lista con vectores donde se incluyen los nombres x/y/z

Arrays statements
name_array<-array()
Define un Array guardándolo en una variable

Selecciona el objeto ubicado en un elemento


name_array[x, y, z] determinado del array definiendo ubicación
con x/y/z

8.4. Data frame


Este tipo de estructura de datos es similar a una matriz, pero con mucha más flexibilidad ya
que puede contener diversos tipos de datos sin verse limitado a introducir siempre el mismo
tipo de dato.

Pueden almacenar diversos tipos de objetos pudiendo ser datos:

 Numéricos
 Caracteres
 Lógicos

Esta estructura de datos admite diversas tipologías de datos por columnas. Es la más utilizada
en estudios estadísticos pudiendo mostrar variables por columnas y número de observaciones
por fila.

Si guardamos los vectores columnas en variables y definimos un data.frame() por defecto R


asocia el nombre de las variables a las columnas numerando las filas.
Data frame statements
Define un data frame donde se han de
data.frame(col1,col2,…) indicar los vectores columna

Selecciona el elemento de la fila 1


name_data.frame[1,2] columna 2

Selecciona los datos de las columnas 1 y


name_data.frame[1:2] 2

Selecciona los datos de la columna


name_data.frame[name_col1] especificando el nombre de la columna

Selecciona los datos de las columnas


name_data.frame[c(name_col1,…)] especificando el nombre de la columna

Forma abreviada de seleccionar los


name_data.frame$name_col1 datos de la columna especificando el
nombre de la columna
Combinada con detach() evita tener
attach(name_data.frame) que escribir el nombre del data.frame
seguido de $ en el código
Combinada con attach() evita tener
detach(name_data.frame) que escribir el nombre del data.frame
seguido de $ en el código
Similar al uso de attach() detach()
with() pero evita conflictos entre variables con
el mismo nombre
Operador de asignación global. Se utiliza
por ejemplo en asignación de objetos a
<<- variables dentro de with({ }) para
que tengan efecto en el resto de código

Ejemplo uso attach() y detach() para ahorrar código, recomendable para usos de un único
data.frame donde los nombre de las variables no pueden estar repetidos:
Para cuando pueden repetirse nombres de variables se debe hacer uso de la función with(), al
repetirse nombres de variables predomina la primera que se definió:

Es importante remarcar que with solo toma efecto en la sección de código comprendida entre
{ }. La limitación es que si se asigna un objeto dentro de { } no quedará reflejado en el código
global:

Para crear objetos dentro de { } y que tengan efecto fuera de esta sección de código es
necesario utilizar el operador de asignación especial <<- :
8.5. Factors
Estructura de datos utilizada para definir variables categóricas. Este tipo de variables no son
continuas, definimos un número limitado de categorías.

Ejemplo: bajo, medio, alto

Dentro de las variables categóricas existen dos clasificaciones:

 Nominales (sin orden)  elefante, cebra, jirafa


 Ordinarias (con orden)  bajo, medio, alto

Al utilizar la función factor() R internamente asocia al vector donde introduzcamos las


variables categóricas un vector de enteros 1,2,… y un vector con strings (nombre de los valores
de la variables categórica).

Es así como le es posible poder reordenar y operar con datos categóricos. Definimos además el
nivel con la función levels() o con la opción ordered=TRUE cuando se tratan de variables
categóricas ordinarias en lugar de nominales.

En el caso de levels() supone escribir una línea más de código con un vector que indique el
orden.

Añadiendo la opción ordered=TRUE el orden será el mismo que se defina dentro de la


función factor() en lugar de alfabéticamente que es como lo asigna R por defecto.

Ej:

Orden predeterminado

vector<-c(“a”,”b”,”c”)
ejemplo<-factor(vector)

En este caso el orden es a(1), b(2), c(3).

Orden con levels()

levels(factor(vector))=c(“c”,”a”,”b”)
En este caso el orden es c(1), a(2), b(3).

Orden con opción ordered=TRUE

factor(c(“c”,”a”,”b”),ordered=TRUE)

En este caso el orden es c(1), a(2), b(3).

En el caso de haber definido el vector previamente y querer otro orden

vector<-c(“a”,”b”,”c”)
factor(vector,order=TRUE,levels=c(“c”,”a”,”b”))

En este caso el orden es c(1), a(2), b(3).


Otra opción útil es devolver como string una variable categórica que de entrada es numérica.
Por ejemplo, el sexo masculino/femenino definido como 0/1. Esto se consigue haciendo uso de
la opción labels().

Factors statements
Define una variable categórica
factor(alto,bajo,..) definiendo el nivel alfabéticamente

Define un orden determinado para los


levels(factor(…))=c(…) valores categóricos
Define una variable categórica con
definiendo el nivel con el mismo orden
factor(vec,ordered=TRUE) que están escritos los elementos en el
vector

8.6. Lists
Las listas son las estructuras de datos más complejas. Nos permiten agrupar cualquier tipo de
objetos, pudiendo agrupar objetos de distinto tipo. Podemos definir en una única lista un
conjunto de vectores, matrices …

Lists statements
Guarda una lista en la variable mylist
mylist<-list(Ob1,Ob2,..) donde se agrupan Objeto1, Objeto2, ….

mylist[[2]]

mylist[[“name_object”]]

mylist$name_object

Potrebbero piacerti anche