Publicado el 6 de Febrero del 2019
1.302 visualizaciones desde el 6 de Febrero del 2019
283,3 KB
81 paginas
Creado hace 6a (21/11/2017)
Programación en R
Tabla de contenido
Prefacio
Introducción a R
Instalación
Introducción a la interface de R
Primeros pasos con R
Introducción de datos
Evaluación
Objetos en R
Números
Atributos
Creando vectores
Mezclando objetos
Coerción explícita
Matrices
Listas
Factores
Valores indefinidos
Data frames
Nombres
Importar y exportar datos en R
Lectura y escritura de datos
Leyendo archivos con read.table()
Leyendo grandes conjuntos de datos
Calculando los requerimientos de memoria
Uso del paquete readr
Uso de formato de texto y binario para almacenar datos
Uso de dput() y dump()
Formatos binarios
Interfaces con el Mundo Exterior
Conexiones con archivos
0
1
1.1
1.2
2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
3
3.1
3.2
3.3
3.4
3.5
4
4.1
4.2
5
5.1
2
Programación en R
Lectura de lineas en archivos de texto
Lectura de conexiones URL
Troceado de objetos
Troceado de un vector
Troceado de una matriz
Troceado de listas
Troceado de elementos anidados de una lista
Troceado de elemtos multiples de una lista
Búsqueda parcial
Eliminación de valores NA
Operaciones vectorizadas
Operaciones matriciales vectorizadas
Fecha y hora
Fechas en R
Horas en R
Operaciones con fechas y horas
Manipulación de Data Frames con el paquete dplyr
Data frames
El paquete dplyr
select()
filter()
arrange()
rename()
mutate()
group_by()
%>%
Estructuras de control
if-else
Iteraciones con for
Iteraciones anidadas con for
Iteraciones con while
repeat
next, break
Funciones
5.2
5.3
6
6.1
6.2
6.3
6.4
6.5
6.6
6.7
7
7.1
8
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
8.12
8.13
9
9.1
9.2
9.3
9.4
9.5
9.6
10
3
Programación en R
Funciones en R
Nuestra primera funci?n
Correspondencia en los argumentos
Evaluación lazy
El argumento ...
Argumentos detrás de ...
10.1
10.2
10.3
10.4
10.5
10.6
4
Programación en R
Este libro es una introducción a la programación en R, es una traducción y adaptación del
libro de Roger D. Peng, R Programming for Data Science, el cual utiliza el mismo material
desarrollado para la Especialización en Data Science de la universidad Johns Hopkins.
Éxisten copias de este libro en formato pdf, epub y mobi en el siguiente enlace.
Rubén Sánchez Sancho
Prefacio
5
Programación en R
Introducción a R
Introducción a R
6
Programación en R
Introducción a R
Instalación
Lo primero que tenemos que hacer es instalar R en nuestra computadora. R dispone de
versiones para la gran mayoría de plataformas como por ejemplo Windows, MacOS X y
Linux. En los siguientes enlaces te mostramos como instalar R en _Windows o Mac:
Instalación de R en Mac
Instalacion de R en Windows
Existe un entorno de desarrollo integrado disponible para R de la compañia RStudio. Es un
estupendo IDE con un editor con corrección sintáctica, una vista de objetos R y un gran
numero de características integradas que facilitan en gran medida las tarea del día a día.
Puedes ver como instalarlo en:
Instalación de RStudio
Instalación
7
Programación en R
El RStudio IDE está disponible en la siguiente página web de RStudio.
Instalación
8
Programación en R
Introducción a la interface de R
Una vez instalado R abriremos RStudio para familiarizarnos con el entorno. En el siguiente
video encontraremos como escribir archivos R y como configurar el IDE para que reconozca
nuestro directorio de trabajo.
Escritura de código y configuración del directorio de trabajo en Mac
Escritura de código y configuración del directorio de trabajo en Windows
Introducción a la interface de R
9
Programación en R
Primeros pasos con R
Primeros pasos con R
10
Programación en R
Primeros pasos con R
Introducción de datos
En el prompt de R escribiremos las expresiones. El símbolo <- és el operador de
asignación.
> x <- 1
> print(x)
[1] 1
> x
[1] 1
> msg <- "hello"
> print(msg)
[1] "hello"
La gramática del lenguaje determina si una expresión es completa o no.Por ejemplo:
x <- ## Expresión incompleta
El carácter # indica que es un comentario. Cualquier cosa escrita a la derecha del mismo
será ignorado. Este és el único tipo de comentario en R. A diferéncia de otros lenguajes R
no soporta los comentarios multilínia y por bloques.
Introducción de datos
11
Programación en R
Evaluación
Cuando un expresión correcta es introducida en la consola, esta es evaluada y el resultado
de la expresión es devuelto. El resultado puede ser auto-printed:
> x <- 5 ## No se imprime en pantalla
> x ## por auto-printing se imprime en pantalla
[1] 5
> print(x) ## impresión explícita
[1] 5
En [1] se muestra que x es un vector y que su primer elemento es 5.
Típicamente con un trabajo interactivo, nosotros no imprimeros los objetos de forma
explícita ya que es mucho más cómodo sólo escribir el nombre del objeto y presionar la
tecla Enter. Sin embargo, cuándo escribamos scripts, funciones o programas muchos más
largos, nos veremos con la necesidad de imprimir objetos y es entonce cuándo utilizaremos
el modo explícito, ya que el modo ímplicito no trabaja en esas circunstáncias.
Cuándo un vector R es mostrado en la consola obsérvese que el índice del vector es
mostrado en []. Por ejemplo:
> x <- 10:30
> x
[1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Los números entre corchetes no forman parte del vector en sí mismo, sino que se trata
únicamente de información para la impresión por pantalla.
En R es de vital importáncia entender la diferéncia que existe en el objeto R y la manera en
que estos objetos son mostrados en la consola. Normalmente, la información en la consola
puede tener información adicional para hacerla más agradable al usuario.
Nota: El operador : es utilizado para crear secuencias de enteros.
Evaluación
12
Programación en R
Evaluación
13
Programación en R
Objetos en R
R tiene cinco tipos básicos de objetos:
character
numeric (número real)
integer
complex
logical (True/False)
El objeto más básico en R es el vector. Podemos crear vectores vacíos con la función
vector(). Existe únicamente sólo una regla sobre los vectores en R, que es que un vector
sólo puede contener objetos de la misma clase.
Pero obviamente, como en cualquier buena regla, existe una excepción, esta és con los
objetos de la clase lista. Una lista es representada como un vector pero puede contener
objetos de diferentes clases. Es por esto, que nosotros utilizaremos con mayor frecuéncia
este tipo de objeto.
Objetos en R
14
Programación en R
Números
Los números en R son tratados como objetos de tipo numeric (números reales de doble
precisión). Esto quiere decir que si vemos en R números com "1" or "2" nos puede llevar a
pensar que estamos tratando con números enteros pero, en realidad detrás de bastidores R
los representa como numeric (algo como "1.00" or "2.00"). Esto no és importante en la
mayoría de los casos... excepto cuando sí lo és.
Si necesitamos trabajar con enteros debemos especificarlo explícitamente con el sufijo L.
Por lo tanto, introduciendo en R 1 te devuelve un objeto de tipo numeric; introduciendo 1L
nos devolverá un objeto de tipo entero.
Existe un tipo especial de número Inf que representa infinito. Esto nos permite representar
entidades como 1/0. Así pues, Inf puede ser utilizado en cálculos de tipo: 1 / Inf que es igual
a 0.
El valor NaN representa un valor indefinido ("not a number"); por ejemplo 0 / 0; NaN puede
ser considerado como un valor no definido (lo veremos en próximos capítulos).
Números
15
Programación en R
Atributos
Los objetos en R pueden tener atributos, estos són como metadatos para el objeto. Estos
metadatos pueden ser muy útiles ya que nos proporcionan información del objeto. Por
ejemplo, los nombres de columna en un data frame nos proporcionan información de lo que
contiene cada columna. Algunos ejemplos de atributos en objetos R son:
names, dimnames
dimensions (en matrices, arrays)
class (e.g. integer, numeric)
length
otros atributos/metadatos definidos por el usuario
A los atributos de un objeto si los hay, se puede acceder mediante la función attributes(). No
todos los objetos contienen atributos, en este caso la función attributes() devolverá NULL.
Atributos
16
Programación en R
Creando vectores
La función c() puede ser usada para crear objetos.
> x <- c(0.5, 0.6) ## numeric
> x <- c(TRUE, FALSE) ## logical
> x <- c(T, F) ##logical
> x <- c("a", "b", "c") ##character
> x <- 9:29 ##integer
> x <- c(1+0i, 2+4i) ##complex
Obsérvese en el ejemplo anterior que T y F és lo mismo que TRUE y FALSE
respectivamente. Sin embargo, deberíamos utilizar los valores TRUE y FALSE para indicar
los valores lógicos, es considerado una buena práctica.
También podemos utilizar la función vector() para inicializar vectores.
> x <- vector("numeric", length = 10)
> x
[1] 0 0 0 0 0 0 0 0 0 0
Creando vectores
17
Programación en R
Mezclando objetos
Existen ocasiones en las que nos encontramos diferentes clases de objetos R mezclados.
Algunas veces esto sucede por accidente pero también puede darse el caso de que haya
sido intencionadamente. Obsérvese detenidamente el siguiente código:
> y <- c(1.7, "a") ## character
> y
[1] "1.7" "a"
> class(y)
[1] "character"
> y <- c(TRUE, 2) ## numeric
> print(y)
[1] 1 2
> class(y)
[1] "numeric"
> y <- c("a", TRUE) ## Character
> print(y)
[1] "a" "TRUE"
> class(y)
[1] "character"
Mezclando objetos
18
Programación en R
En todos los casos anteriores hemos mezclados objetos de diferentes clases en un vector.
No obstante, recordemos que la única regla en los vectores es que no podemos mezclas
objetos de diferentes clases. Cuando esto sucede, se pone en marcha la coercio para que
cada elemento del vector seán de la misma clase.
En el ejemplo presentado hemos visto el efecto conocido como coercion implícita. Con este
mecanismo R intenta encontrar un manera de representar todos los objetos de una forma
razonable.
Mezclando objetos
19
Programación en R
Coerción explícita
El mecanismo de coercio
Comentarios de: Programación en R (0)
No hay comentarios