Sunteți pe pagina 1din 56

Curso libre:

R Básico

Tutor:
María Acero
Introducción al lenguaje de
programación en RStudio
María Acero y Felipe Niño
Monitores Unidad de Informática
R - Project
• R es un entorno y lenguaje de programación con un
enfoque al análisis estadístico.
• R es una implementación de software libre del
lenguaje S.
• Fue desarrollado inicialmente por Robert
Gentleman y Ross Ihaka del Departamento de
Estadística de la Universidad de Auckland en 1993.
Sin embargo, si se remonta a sus bases iniciales,
puede decirse que inició en los Bell Laboratories
de AT&T y ahora Alcatel-Lucent en Nueva Jersey con
el lenguaje S.
¿QUÉ SE PUEDE HACER CON
R?
• Hacer cálculos
• Realizar análisis estadístico
• Crear gráficos de gran alcance
• Escribir sus propias funciones
Trabajar en consola: R como
calculadora
Ejercicios: R como
calculadora

Creación de variables
“X” Nombre de “5” Valor que se le
variable desea dar a la variable

x <- 5 x = 5

Se le puede asignar un valor a la


variable x por medio de <-, lo cual
se puede observar como una flecha
que apunta al nombre de la variable
Trabajar en consola: Guardar
variables
Al pulsar la tecla
Enter el valor 4
queda guardado
en la variable x.

Al escribir el
nombre de la
variable pulsar la
tecla Enter se
puede observar
qué guarda esta
variable.
Ejercicios: Variables
• Guardar los siguientes valores en variables:
• 10
• 80/13
• 99*19/29
Funciones básicas en R

función(x, y, …)

Funciones de los
paquetes de R o Características
funciones creadas. Objeto u función
Ej. mean() objetos

suma(1, 15, 40)


Trabajar en consola:
Funciones

Si se desea sumar más


números se van agregando
con la coma:
sum(x, 3, 4, 5)
Ejercicios: Funciones
• Realizar los siguientes ejercicios.
• Suma de 3, 4, 5, 10, 109, 80
• Productoria de 3, 4, 5, 10, 109, 80

Nota: La productoria es la
multiplicación sucesiva de los
números determinados. En R
es la función prod.
Trabajar en consola
Problemas de trabajar en
consola
• Al trabajar en consola, el código trabajado se
pierde luego de cerrar, no es posible de
guardar estos datos. Por esto, es necesario el
uso de un Script o guión en el cual se va
trabajando el código.
• No es posible ver las variables guardadas
fácilmente.
RStudio
• RStudio es un entorno de desarrollo integrado (IDE)
para el lenguaje de programación R, dedicado a la
computación estadística y gráficos.
• Incluye una consola, editor de sintaxis que apoya la
ejecución de código, así como herramientas para el
trazado, la depuración y la gestión del espacio de
trabajo.
Variables,
funciones,
bases de
datos
Script,
tablas

Archivos,
paquetes,
gráficos
Consola
Trabajar en un script
• Se ejecutan las líneas del código mediante:

Ejercicio:
En el script, guardar en una
variable el valor de 55*64 y
luego mostrar este valor
Ayuda en RStudio
Ayuda en RStudio
> help() Muestra una ventana de ayuda general sobre R.

> help.start() Arranca un manual de ayuda completo en formato html,


utilizando el navegador del sistema.

> help(mean) Muestra una ventana de ayuda sobre la función "media


aritmética".

> ?mean Lo mismo que el ejemplo anterior.


> help("[") Muestra una ayuda sobre el carácter [ , que es un carácter
especial: forma parte del lenguaje R.

> apropos("mean") Muestra las funciones relacionadas con la función mean.

> help.search("mean") Busca ayuda sobre objetos o funciones que tengan nombre o
título que contenga la cadena "mean“

> ??mean Lo mismo que el ejemplo anterior


Ejercicio: Ayuda en RStudio
• Buscar ayuda en R sobre la función por medio
de help o ‘?’:
• sum
• prod
• max
• Buscar por medio de la función apropos:
• mean
Tipos de datos en R
• • Lógicos
• Representan valores lógicos
como TRUE/FALSE

• Valores especiales
• Valores faltantes NA
• Caracteres • Infinito Inf ó –Inf
• Se denotan con • Not a number NaN
comillas • Nulo, el valor no NULL
Ej. “Hamburguesa” es verdadero o
falso
Tipos de datos en R:
Numéricos
> numero <- 100
Por defecto todos los datos en R
> typeof(numero) son double es decir números
[1] "double" reales (100.0), si se desea tener
un número entero, es necesario
> numero <- 100L agregar la L.
> typeof(numero)
[1] "integer"
Tipos de datos en R:
Numéricos
> decimal <- 5.4
> typeof(decimal)
[1] "double"
Tipos de datos en R: Complejos

> complejo <- 7i


> typeof(7i)
[1] "complex"
Tipos de datos en R: Carácteres

> caracter <- "Hamburguesa"


> typeof(caracter)
[1] "character"
Tipos de datos en R: Lógico

> logico <- 7>5


> typeof(logico)
[1] "logical"
Actividad

Datos en R
Atributos de los
Información
Objetos

Cualquier tipo de entidad que maneja R.


Modo
Se usa la función: mode(objeto).

Tipo de datos de los objetos: entero, carácter, double, etc.


Tipo
Se usa la función: typeof(objeto).
Vector alfanumérico con la lista de las clases del objeto.
Clase Se usa la función: class(objeto).

Etiquetas de los elementos individuales de un vector o lista.


Nombres
Se usa la función: names(objeto).

Dimensiones de las matrices y arrays (alguna puede ser cero).


Dimensiones
Se usa la función: dim(objeto).
Nombres de las dimensiones de los arrays y las matrices.
Dimnames
Se usa la función: dimnames(objeto).
Otros atributos Por ejemplo: Atributos de una serie temporal.
Diferencias class, mode, typeof
Función Descripción

class Identifica qué tipo de objeto es desde el punto de


vista de programación orientada objetos.

mode Da el “tipo” de objeto desde el punto de vista de


Becker, Chambers & Wilks (1988). Estos son los
creadores del lenguaje de programación S.

“The New S Language” - 1988


typeof Da el “tipo” de objeto desde el punto de vista de R.
Clasificación de los objetos en
R
• Los objetos se pueden clasificar en dos grandes
grupos:
• atómicos: todos los elementos que los componen
son del mismo tipo (o modo), como por ejemplo los
vectores, matrices, series temporales.
• recursivos: pueden combinar una colección de
otros objetos de diferente tipo (o modo), como son
los data.frame, listas.
Clasificación de los objetos en
R
• Existen otras estructuras recursivas, por
ejemplo:
• El modo function está formado por las funciones
que constituyen R, unidas a las funciones escritas
por cada usuario. Las trataremos en un tema
posterior.
• El modo expression corresponde a una parte
avanzada de R.
Tipos de objetos: atómicos
Objetos Información

Vector Cadenas unidimensionales (es decir una sola columna o fila) de un tipo único
de valores (numéricos, caracteres, etc.)
Matrices
Estructura bidimensional donde todos los datos deben ser del mismo tipo.

Factores Este tipo de objeto es fundamental para el análisis estadístico pues es la forma
como se tratan las variables categóricas.
Series
Una serie temporal es una secuencia de datos, observaciones o valores,
temporales
medidos en determinados momentos y ordenados cronológicamente
Tipos de objetos: recursivos
Objetos Información

Listas Las listas son objetos genéricos que corresponden a colecciones de distintos
objetos que pueden ser de tipos distintos.

Data Frames Como una matriz pero pudiendo contener distintos tipos de datos. Es lo que
clásicamente se ha llamado base de datos o hoja de datos.
Ejemplos
Vector Los vectores se pueden crear mediante la función c, la cuál une (cocatenar)
los elementos
> ejemplo <- c(1, 2, 3, 4, 5, 6)
> ejemplo
[1] 1 2 3 4 5 6

Matrices Para las matrices, se usa la función matrix


matrix ( data= n , nrow = numero de filas , ncol = numero de columnas )

> m <- matrix(ejemplo, nrow=3, ncol=2)


> m
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
Ejemplos
Factores factor(género)

> genero <- c("femenino", "masculino", "femenino", "femenino",


"masculino", "femenino")
> f <-factor(genero, levels=c("femenino", "masculino"))
> f
[1] femenino masculino femenino femenino masculino femenino
Levels: femenino masculino

Listas list( Numérico, "Carácter", Lógico)

> lista <- list(genero, ejemplo)


> lista
[[1]]
[1] "femenino" "masculino" "femenino" "femenino" "masculino"
"femenino"

[[2]]
[1] 1 2 3 4 5 6
Ejemplos
Data frames data.frame(variable 1, variable 2, ...)

> d <- data.frame(genero, x1);d


genero x1
1 femenino 1
2 masculino 2
3 femenino 3
4 femenino 4
5 masculino 5
6 femenino 6
Nota: El punto y coma; es el signo
de fin de sentencia.
Actividad

Tipos de objetos
Coerciones de tipos
• La mayoría de las funciones producen un error
cuando el tipo de datos que esperan no
coincide con los que ponemos en los
argumentos.
• Tenemos dos posibilidades:
• Comprobar el tipo de datos utilizando funciones
is.algo(), que nos responde con un valor lógico,
• Forzar al tipo de datos deseados coercionando, para
lo cual podemos utilizar funciones del tipo as.algo(),
que fuerzan el tipo de datos.
Algunas coerciones
is.numeric()
is. ----()
Coerciones
> x<- c(1, 2, 4);x
[1] 1 2 4
> is.numeric(x)
[1] TRUE

Con la función ‘is.’ le


preguntamos a R si el objeto es lo
que escribimos luego, que en
este caso sería numérico.
Coerciones
> x1<-as.character(x);x1
[1] "1" "2" "4"
> is.numeric(x1)
[1] FALSE
> is.character(x1)
[1] TRUE
Con la función ‘as.’ obligamos a
R a cambiar el tipo de objeto,
que en este caso sería de
numérico a carácter.
Coerciones
> x2<-as.numeric(x1);x2
[1] 1 2 4
> is.numeric(x2)
[1] TRUE
Concatenar (“Unir”)
c(x, y) Tipo
vector
cbind(x, y)
Tipo
rbind(x, y) matriz

list, data.frame Más de un tipo


Concatenar: cbind
> x1 <- c(1, 2, 3, 4, 5, 6)
> y1 <- c(9, 8, 7, 6, 5, 4)
> cbind(x1, y1)
x1 y1
[1,] 1 9
[2,] 2 8 La función cbind une los
[3,] 3 7
[4,] 4 6
vectores como columnas, es
[5,] 5 5 decir, cada variable será una
[6,] 6 4 columna de la nueva matriz
que da como resultado.
Concatenar: rbind
> x1 <- c(1, 2, 3, 4, 5, 6)
> y1 <- c(9, 8, 7, 6, 5, 4)
> rbind(x1, y1)
[,1] [,2] [,3] [,4] [,5] [,6]
x1 1 2 3 4 5 6
y1 9 8 7 6 5 4

La función rbind une los vectores


como filas, es decir, cada variable
será una fila de la nueva matriz que
da como resultado.
Secuencias
seq(from = a, to = b, by =c)

Posición Posición final Amplitud


inicial
a:b

Posición Posición final


inicial
rep(x, times=5)

Vector a Las veces que


repetir se repetirá
Variables lógicas
• Las variables lógicas constituyen
un tipo particular de factor en R,
que se caracteriza por tomar
sólo dos valores: TRUE o FALSE
codificados, respectivamente,
como 1 y 0.
• Es posible construir condiciones
lógicas utilizando los
operadores ‘y’ (&), ‘o’ (|) y ‘no’
(!). La comparación de valores
se lleva a cabo mediante == (‘es
igual a’) y != (‘es distinto de’).
Operadores lógicos
Operador Operación
!x Negación de x. Los TRUE los convierte en FALSE y
viceversa.
x&y Intersección. Operador lógico “y”.
x|y Unión. Operador lógico “o”.
x==y Igualdad. Operador lógico “es igual a”
x!=y Diferencia. Operador lógico “es distinto de”
Operadores lógicos:
Ejemplo
Operadores lógicos:
Ejemplo
• Se comprueba si 5 es diferente a 9
> 5!=9
[1] TRUE
• Intersección. Operador ”y”
> (5==9)&!(7>5)
[1] FALSE
• Unión. Operador ”y”
> (5==9)|(7>5)
[1] TRUE
Operadores lógicos:
Ejemplo
¿Cómo se comprobaría lógicamente la
siguiente afirmación?
Tome x=5 y x=1

3≤𝑥<7
Trabajar con objetos

x$nombre > x <- c(1, 2, 3, 4)


> y <- c(3, 4, 5, 6)
En data frames y listas > df<-data.frame(x, y)
se puede acceder a
los elementos si
> df$x
tienen un nombre de [1] 1 2 3 4
esta forma > df[[1]]
[1] 1 2 3 4
Trabajar con objetos
• Acceso a algún(os) componentes específicos

x$nombre > lista <- list(a="a", b=1:10)


> lista[[1]]
En data frames y listas [1] "a"
se puede acceder a > lista$b
los elementos si [1] 1 2 3 4 5 6 7 8 9 10
tienen un nombre de > lista$a
esta forma [1] "a"

S-ar putea să vă placă și