0% encontró este documento útil (0 votos)
3 vistas54 páginas

Notas R

El documento es un curso introductorio sobre R, un lenguaje de programación para análisis estadístico y gráfico, creado en 1993. Se abordan temas como la creación de objetos, funciones, control de flujo, manipulación de datos, y operaciones con vectores y matrices. También se menciona el uso de RStudio como entorno de desarrollo y se explican las reglas para la asignación de variables y el uso de operadores aritméticos y lógicos.

Cargado por

admerluis
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas54 páginas

Notas R

El documento es un curso introductorio sobre R, un lenguaje de programación para análisis estadístico y gráfico, creado en 1993. Se abordan temas como la creación de objetos, funciones, control de flujo, manipulación de datos, y operaciones con vectores y matrices. También se menciona el uso de RStudio como entorno de desarrollo y se explican las reglas para la asignación de variables y el uso de operadores aritméticos y lógicos.

Cargado por

admerluis
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción a R

Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Diplomado en Técnicas y Modelos de la


Estadı́stica para Análisis de Datos
Módulo I. Probabilidad Nivel Básico

M. en C. Benjamı́n Figueroa Solano


Universidad Nacional Autónoma de México

24 de abril de 2026

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

¿Cómo, cuándo y dónde nace R?

Entre 1975 y 1976 se desarrolló en los Laboratorios AT&T Bell el lenguaje


de programación para la estadı́stica S, hoy conocido como S-PLUS. El
lı́der de ese proyecto fue John Chambers. S-PLUS no es software libre.
R es un sistema para análisis estadı́sticos y gráficos creado por
Ross Ihaka y Robert Gentleman en el Departamento de Estadı́stica de la
Universidad de Auckland, Nueva Zelanda, en agosto de 1993. Es
considerado un dialecto del lenguaje S. Actualmente, su desarrollo es
responsabilidad del R Development Core Team. R se distribuye
gratuı́tamente bajo los términos de la General Public Licence - GNU
The R project es:
colaborativo, es decir que sus usuarios pueden publicar paquetes
para toda la comunidad previo proceso de validación
abierto, ya que es posible ver el código de los paquetes y si quiere,
también es posible modificarlos

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Entorno de desarrollo integrado (IDE) Rstudio

R cuenta con su propio editor de código, no obstante, sus


capacidades son limitadas
Existen diversos entornos de desarrollo integrado, o IDE
-Integrated Development Enviroment- por sus siglas en
inglés, entre las que destaca Rstudio, el cual es software libre
En este curso trabajaremos con Rstudio ya que la iluminación
de fuentes es muy completa y al construir gráficos ofrece la
ventaja de mostrarlos en una ventana a parte, manteniendo
las propiedades originales y facilitando ası́ su manejo.

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Prompt de inicio

Al iniciar sesión en R aparece el sı́mbolo:


>
esto significa que la consola se encuentra lista para empezar a
recibir instrucciones.

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

¡Help! Cómo utilizar la ayuda

R dispone de un sistema de ayuda muy completo al que se


puede acceder por medio de la barra de menú, o bien,
invocándolo desde la lı́nea de comandos
Algunos ejemplos son:
> help() muestra una ventana de ayuda general sobre R
> [Link]() arranca un manual de ayuda completo en
formato html
> help(mean) muestra una ventana de ayuda sobre la
función media aritmética
> ?mean lo mismo que el ejemplo anterior

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

¡Help! Cómo utilizar la ayuda

Otros ejemplos de cómo utilizar la ayuda son:


[Link](’mean’) busca ayuda sobre objetos o
funciones cuyo nombre o tı́tulo contenga la cadena mean
??mean lo mismo que en el ejemplo anterior
apropos(’mean’) busca funciones que estén relacionadas
con la función mean
help(’[’) muestra la ayuda para el caracter [, que es un
carácter especial pues forma parte del lenguaje R
si se invoca una función omitiendo los paréntesis se despliega
el código de la función, ejemplo:
> ls

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Comentando el código

La manera de añadir comentarios a nuestros scripts de R es por


medio del sı́mbolo #. Ejemplo:
# Esto es un comentario
## Para escribir comentarios debemos iniciar la lı́nea
### de comentario con el sı́mbolo # <- gato
### Los comentarios no se ejecutan, estos se usan principalmente
para
#### describir el objetivo de un determinado conjunto de lı́neas
de código
#### Se recomienda generar el hábito de comentar el código

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Creación de vectores

Es común trabajar con conjuntos de datos las cuales generalmente


son almacenados en vectores
c(...) concatena elementos o vectores para generar un
nuevo vector
rep(x, num_veces) repite el x, el número de veces que
indique num_veces
seq(de, hasta, incremento) crea una sucesión de puntos
que van de punto inicial a punto final, con incrementos de
longitud fija

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Reglas para la asignación

En cuanto a la asignación de nombres de variables es necesario


tomar en cuenta las siguientes reglas:
R es sensible a MAYÚSCULAS y minúsculas
Los nombres de variables u objetos pueden contener cualquier
combinación de caracteres excepto:
comenzar con un número
contener cualquiera de los sı́mbolos especiales: $, %, #
no debe haber espacios en blanco en medio del nombre

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Operadores de importancia

<- ó = operador asignación


: operador de sucesiones
Ejemplo:
> x <- 132
[1] 123
> 1:5
[1] 1 2 3 4 5

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Operadores aritméticos

Podemos realizar cualquier operación aritmética por medio de:

+ suma / división
- resta ^ elevar a una potencia
* multiplicación %% módulo o residuo
Ejemplo:
> 3 + 4
[1] 7
> 2^5
[1] 32

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Operadores relacionales

< menor que


> mayor que
== igualdad
!= diferentes
<= menor o igual a
>= mayor o igual a
En estos casos, el resultado no es un número, sino un valor lógico:
TRUE ó FALSE
> 5<9
[1] TRUE
> 10<9
[1] FALSE
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Operadores lógicos
&& Y
|| O

Los operadores lógicos sirven para evaluar proposiciones. Suponga que se


tienen dos proposiciones lógicas A y B, que pueden tomar los valores verdadero
(TRUE) o falso (FALSE). Las tablas de verdad de los operadores && y || son:

A B A&&B A B A||B
TRUE TRUE TRUE TRUE TRUE TRUE
TRUE FALSE FALSE TRUE FALSE TRUE
FALSE TRUE FALSE FALSE TRUE TRUE
FALSE FALSE FALSE FALSE FALSE FALSE

Para negar una proposición utilizamos ! como prefijo, es decir, !A quiere decir
no A.
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Expresiones y objetos
La interacción básica se realiza a través de la evaluación de
expresiones: el usuario da una expresión, el sistema la evalúa e
imprime un resultado
Cualquier expresión devuelve un valor, incluso puede ser NULL
Algunas expresiones no son evaluadas como una salida en la
consola, ya que devuelven una ventana de gráfico o envı́an su
salida a un archivo
Objeto es un término abstracto usado para cualquier resultado
que pueda asignarse a una variable
No discutiremos aquı́ que son los objetos, más bien nos
concentraremos en cómo generarlos y que hacer con ellos
Algunas expresiones carecen de sentido sin el conocimiento de
los objetos que devuelven, por ello, a continuación
presentamos los más comunes
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Operaciones con vectores

Una de las ventajas de R es que se pueden manipular vectores


de datos como si fueran objetos individuales, es decir, se
pueden hacer todo tipo de operaciones aritméticas con ellos
Para la gran mayorı́a de estas operaciones será necesario que
los vectores operados tengan la misma longitud
Generalmente cuando las longitudes de los vectores coinciden
las operaciones se realizan elemento a elemento

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Aritmética vectorial

Ejemplo:
> x <- 1:10
> y <- 10:1
> ej1 <- x*y
> ej2 <- x/y
> ej3 <- (x-y)/(x*y)
> ej4 <- x^y
> ej5 <- cos(y/x)

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Subconjuntos
El primer elemento de un vector está asociado al ı́ndice 1, el
segundo al 2 y ası́ sucesivamente
La forma de acceder a un subconjunto de datos dentro de un
vector es por medio de un número o incluso también por
medio de un vector que se especifica dentro de corchetes
después del nombre del vector en cuestión

Ejemplo
x[n] accede al elemento n del vector x
x[-n] accede a todos los elementos de x menos al n
x[1:n] selecciona los elementos entre los ı́ndices 1 y n
x[c(1,5,9)] acceder a los elementos en los ı́ndices 1, 5 y 9

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Matrices

Una forma sencilla de crear una matriz es por medio de la


función matrix()

matrix(1:12, nrow=3, byrow=TRUE)

El argumento byrow=TRUE obliga que la matriz sea llenada


por renglón. Por defecto, byrow=FALSE de manera que la
matriz se llena por columna

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Operaciones básicas con matrices

%*% operador para la multiplicación de matrices


t() transpone una matriz
solve() calcula la matriz inversa

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Operaciones con matrices

Las funciones cbind() y rbind() nos permiten unir dos o


más marcos de datos, matrices o vectores con las dimensiones
adecuadas ya sea para aumentar columnas, o bien, para
aumentar renglones en un marco de datos, matriz o vector
Con rownames() y colnames() podemos cambiar, si ası́ se
desea, los nombres de los renglones y/o columnas de una
matriz, respectivamente

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Listas

En ocasiones es útil combinar una colección de objetos dentro


de un gran objeto compuesto. Esto se puede lograr mediante
listas
Para construir listas usamos list()
Por ejemplo, considere los vectores de longitud distinta dias y
meses:
dias <- c(“lunes”, “martes”, ...)
meses <- c(“enero”, “febrero”, “marzo”, ...)
Combinando ambos podemos creamos la lista:
miLista <- list(dia=dias, mes=meses)

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Listas

Para extraer los componentes de una lista usamos la notación


$ seguida del nombre que dimos al componente:
miLista$dia
miLista$mes
Muchas funciones de R devuelven su resultado en forma de
lista

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Expresiones
Una expresión es un conjunto de caracteres que pueden ser
interpretados según las reglas de R
En ciertos casos, es útil construir una expresión y después
evaluarla como si se tratara de una función
Las expresiones son evaluadas mediante eval()
> exp1 <- expression(x/(y + exp(z)))
> x <- 3
> y <- 2.5
> z <- 1
> eval(exp1)
x
exp1(x, y , z) =
y + ez
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Expresiones

Algunas funciones de R reciben como argumento una


expresión
Por ejemplo, la función D() calcula la derivada parcial de
exp1 con respecto a x, y o z
> D(exp1, “x”)
> D(exp1, “y”)
> D(exp1, “z”)

∂exp1 1 ∂exp1 x ∂exp1 xe z


= ; =− ; =−
∂x y + ez ∂y (y + e z )2 ∂z (y + e z )2

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Funciones
En R, muchos procedimientos se realizan llamando a una función, es
decir, a través de comandos tales como log(x), plot(x, y), etc.
La sintaxis general de cualquier función es:
nombre de la función,
paréntesis abre (
argumentos, pueden ser uno o más, dependiendo la función,
paréntesis cierra )
En su mayorı́a, los argumentos de una función pueden ser pasados
por omisión, respetando el orden posicional especı́fico que
corresponde a cada uno de ellos
Si no se recuerda el orden en que deben colocarse los argumentos,
estos podrán pasarse incluso no respetando el orden posicional
especı́fico mediante la notación argumento=valor

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Funciones matemáticas
all() devuelve TRUE si todos los elementos de un vector
lógico son verdaderos
any() devuelve TRUE si al menos uno de los elementos es
verdadero
sum() devuelve la suma de los elementos de un vector
prod() calcula el producto de un vector
min() devuelve el mı́nimo por columna
max() devuelve el máximo por columna
pmin() calcula el mı́nimo por renglón
pmax() calcula el máximo por renglón
range() calcula el rango de un vector

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Funciones matemáticas
abs(x) valor absoluto |x|
sign(x) función signo

sqrt(x) raı́z cuadrada x
floor(x) máximo entero menor ⌊x⌋
ceiling(x) mı́nimo entero mayor ⌈x⌉
trunc(x) función truncamiento
round(x,n) redondeo de x hasta n decimales
exp(x) exponencial
log(x) logaritmo natural
log10(x) logaritmo base 10
cos(x) coseno
sin(x) seno
tan(x) tangente
acos(x) arcocoseno o coseno inverso
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Funciones matemáticas
asin(x) arcoseno o seno inverso
atan(x) arcotangente o tangente inversa
cosh(x) coseno hiperbólico
sinh(x) seno hiperbólico
tanh(x) tangente hiperbólica
acosh(x) arcocoseno hiperbólico
asinh(x) arcoseno hiperbólico
atanh(x) arcotangente hiperbólica
gamma(x) función gama Γ(x)
lgamma(x) logaritmo natural de la función gama log (Γ(x))
Xk
cumsum(x) suma acumulada xk = xi
i=1
k
Y
cumprod(x) producto acumulado xk = xi
i=1
cummax(x) máximo k-ésimo maxxk (x1 , . . . , xk )
cummin(x) mı́nimo k-ésimo minxk (x1 , . . . , xk )
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Funciones

Las funciones son de utilidad tanto para hacer eficientes tareas


repetitivas como para escribir código limpio y reciclable
La sintaxis para la declaración de una función es:
nombre funcion <- function(lista de argumentos){
instrucciones ...
return (valor o valores que devuelve)
}

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Estructuras de control

Para escribir funciones R dispone de las siguientes estructuras de


control del flujo:
if-else evalúa una condición
for ejecuta una acción un número determinado de veces
while ejecuta una acción mientras se cierta condición sea
válida
repeat ejecuta una acción hasta que ocurre break
break detiene la ejecución de repeat
next salta a la siguiente iteración
return especifica el valor que devuelve una función

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Estructura de control selectiva

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Estructuras de control de iteración

Estructura de control repetitiva para. Número de iteraciones fijo.


Finaliza al realizarse la totalidad de las iteraciones señaladas.
Alternativamente puede usar next y break
Sintaxis: for(ı́ndice en vector){ ... [break] [next]}
Estructura de control repetitiva mientras. Número de iteraciones
desconocido. Finaliza la primera vez que la condición de paro es
falsa.
Sintaxis: while(){ ... }
Estructura de control repetitiva repetir. Número de iteraciones
indefinido. Finaliza al alcanzarse la sentencia break.
Alternativamente puede usar next
Sintaxis: repeat{ ... [break] [next]}

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

La función source()

Permite incluir el código de otros scripts dentro del script que


contiene la llamada a source()
El archivo especificado en el argumento de
source(source_file) es leı́do en su totalidad y cualesquiera
objeto, expresión y/o función definida en el archivo
source_file serán cargados al espacio de trabajo
Ejemplo:
> source(“mi codigo.r”)
> source(“C:/Mis documentos/.../Proyecto/mi codigo.r”)

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Lectura y escritura

En R es posible leer datos de archivos externos por medio de las


funciones:
[Link]()
[Link]()
read.csv2()
[Link]()
read.delim2()
las cuales facilitan la lectura de archivos tipo tabla. En algunos
casos se recomienda trabajar los datos previamente para ajustarlos
a las necesidades de R.

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Rutas absolutas y relativas


Una ruta (en inglés path) señala la localización exacta de un
archivo o directorio a través de una cadena de caraterés
especı́fica
Las rutas se componen de los nombres de los directorios que
conforman el camino hasta el archivo o directorio de trabajo
Una ruta absoluta señala la ubicación del archivo o
directorio a partir del directorio raı́z, por ejemplo:
C:\Mis documentos\Benjamı́n\clase1.r
Una ruta relativa señala la ubicación de un archivo o
directorio a partir de determinada posición dentro del árbol de
directorios, por ejemplo: si mi directorio de trabajo es C:\R
entonces la ruta relativa clasesDiplo\clase1.r equivale a
la ruta absoluta C:\R\clasesDiplo\clase1.r
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

getwd y setwd
Las funciones getwd() y setwd() permiten conocer la ruta
del directorio de trabajo actual y, en caso necesario,
modificar este por un nuevo directorio de trabajo con la
finalidad de tener acceso a los archivos que serán leı́dos
getwd() devuelve la cadena de caracteres del directorio de
trabajo actual
setwd(dir) cambia el directorio de trabajo a la ruta
establecida en dir
En el sistema operativo MS-DOS/Windows los nombres de
directorios se separan por el caracter \ (backslash)
R utiliza el caracter / para separar los nombres de directorios
por lo que antes será necesario cambiar \ por / (slash) en
dir
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Archivos separados por comas


La función [Link]() permite leer un archivo en formato tipo
tabla para crear un marco de datos a partir de él. La sintaxis de
esta función es:
[Link](file, header=TRUE, sep=“,”, dec=“.”, fill=TRUE, ...)

file ruta (absoluta o relativa) del archivo que contiene los


datos a ser leı́dos
header valor lógico que indica si el archivo contiene o no los
nombres de las variables en el primer renglón
sep caracter separador de campo
dec caracter usado dentro de file para separar enteros
de decimales
Ejemplo: bd1 <- [Link](“[Link]”)
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Marco de datos

Un marco de datos o [Link] es una lista de vectores


y/o factores todos de la misma longitud relacionados entre
sı́ de manera tal que los datos en un mismo renglón
pertenecen a la misma unidad experimental (hogares,
asegurados, tarjetahabientes, derechohabientes, etc.)
Un marco de datos equivale a un dataset en otros sistemas
estadı́sticos como SPSS o SAS
Ejemplo:
> var1 <- c(1:100)
> var2 <- c(101:200)
> data <- [Link](var1, var2)

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Marco de datos

La manera de acceder a las variables dentro de un marco de


datos se hace mediante el sı́mbolo $
> data$var1
> data$var2
Para tener acceso a los datos utilizamos la notación de
corchetes
Ejemplo:
> data$var1[15]
> data[15,1]
son equivalentes.

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Salida de datos

Ejemplo:

[Link](objeto, file=“[Link]”, sep=“,”, [Link]=F)

[Link](...)
write.csv2(...)
x el objeto que será escrito en la salida,
preferentemente una matriz o un marco de datos
file cadena de caracteres con el nombre del archivo donde
será escrita la salida. ”” indica salida hacia la consola
sep caracter separador de campo. Valor dentro de cada
renglón de x son separados por este caracter

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Guardar objetos

save escribe una representación externa de un objeto de R al


archivo especificado. Estos objetos pueden volver a ser leı́dos
posteriormente desde el archivo mediante la función load
save(..., list = character(), file = “ ruta ”)
... los nombres de los objetos que serán guardados
list vector de caracteres conteniendo los nombres de los
objetos que deben ser guadados
file ruta y nombre del archivo donde se guardarán los
datos

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

attach() y detach()
Sintaxis:
> attach(marco_ de_datos)
El nombre del marco de datos se añade a la ruta de búsqueda
Al evaluar cualquier variable, R buscará dicha variable,
primero dentro del marco de datos y después fuera de él. De
esta manera se simplifica la cantidad de código que debemos
escribir ya que para acceder a las variables en un marco de
datos bastará con escribir su nombre
Sintaxis:
> detach(marco_de_datos)
Borra el nombre de un marco de datos de la ruta de búsqueda.
Se trata de la operación inversa a attach

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Factor
Es común que los datos recolectados mediante instrumentos
tales como un cuestionario contengan variables de tipo
categórico
Generalmente, estas variables indican la división de los datos
en estratos o categorı́as
Ejemplo: sexo, escolaridad, nivel socioeconómico, diagnóstico
de una enfermedad, etc. las cuales generalmente se levantan
mediante códigos numéricos con la finalidad de facilitar su
captura
En R las variables categóricas deben ser manipuladas por
medio de variables tipo factor
El objeto factor permite asignar nombres significativos a
cada una de las categorı́as
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Factor

Un factor se compone de dos elementos:


niveles vector de enteros
etiquetas de los niveles vector de caracteres
Ejemplo:
> nse3 <- c(2, 3, 1, 3, 2, 3)
> [Link] <- factor(nse3)
> levels([Link]) <- c(“Alto”, “Medio”, “Bajo”)

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Selección condicional
A menudo, se requiere extraer datos que cumplan con algún criterio
especı́fico. Esta operación se puede hacer mediante la inserción de una
expresión relacional:
edad[sat1 < 3]
la cual tiene sentido sı́ y sólo sı́ ambas variables tienen la misma longitud.
Se pueden utilizar los operadores lógicos &, | y ! para crear expresiones
relacionales más complejas. Por ejemplo:
edad[sat1 >= 1 & sat1 <= 5 & sat1!=3]
Revisando con un poco de detalle nos encontramos con que el resultado
es un vector lógico. De esta manera son seleccionados únicamente
aquello ı́ndices cuyo resultado es igual a TRUE
sat1 >= 1 & sat1 <= 5 & sat1!=3
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Subconjuntos

Una forma de extraer subconjuntos de un marco de datos es


mediante la función subset():

subDataSet <- subset(bd, EDAD > 20, select=c(EDAD,


SEXO))

Una diferencia importante entre las expresiones relacionales y


subset() es que esta última excluye los valores NA mientras
que la primera no.
La otra diferencia es que subset() sólo trabaja con vectores
individuales.

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Ordenamiento de un marco de datos

Es posible ordenar vectores individuales por medio de la


función sort()
Una forma, un poco abtracta, de ordenar un marco de datos
es mediante order()
Ejemplo:
> ind_ord <- order(crit1, crit2, ..., critN)
> marco_datos <- marco_datos[ind_ord,]
El vector ind_ord indica la secuencia bajo la cual el
marco_datos queda ordenados según los distintos criterios
que se tengan

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Creación de un nuevo marco de datos

La función transform() nos permite crear un nuevo marco


de datos a partir de uno ya existente, o bien, agregar nuevas
variables a éste
nuevo marco <- transform(marco original, newvar=pesoˆ2)
datos <- transform(datos, newvar2=newvar/Time)
Las variables utilizadas para generar nuevas variables o para
extraer subconjuntos son evaluadas como variables del marco
de datos especificado

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Valores faltantes

En ocasiones, ocurre que un conjunto de datos no está disponible


por diversas razones: interrupción de la entrevista, experimentos
fallidos, etc. Todo paquete estadı́stico que se jacte de serlo debe
implementar formas para trabajar con valores faltantes
En R los valores faltantes se denotan por NA. Cualquier operación
que involucre datos NA devolverá un resultado NA a menos que la
función que estemos utilizando permita [Link]=T, o
bien, usando [Link] como función
Ejemplo:
> mean(x[[Link](x)])
> mean(x, [Link]=T), son equivalentes
Cuidado! No se pueden hacer comparaciones del tipo x==NA. La
función [Link]() averigua cuales elementos de un vector son NA

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Densidades continuas
1
Uniforme fX (x; a, b) = , x ∈ (a, b), a < b ∈ R
b−a
(x − µ)2
 
1
Normal fX (x; µ, σ) = √ exp − , x ∈ R,
2πσ 2 2σ 2
µ ∈ R, σ > 0
Exponencial fX (x; λ) = λe −λx , x ≥ 0, λ > 0
x α−1 −x/β
Gama fX (x; α, β) = α e , x ≥ 0, α > 0, β > 0
β Γ(α)
k  x k−1 −(x/λ)k
Weibull fX (x; λ, k) = e , x ≥ 0, k > 0,λ > 0
λ λ 
1 γ
Cauchy fX (x; x0 , γ) = , x > x0 , x0 ∈ R,
π (x − x0 )2 + γ 2
γ > 0. Esperanza, varianza y cualquier otro momento de
orden superior, no existen.
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Densidades continuas

Γ(a + b) a−1
Beta fX (x; a, b) = x (1 − x)b−1 , x ∈ [0, 1], a > 0,
Γ(a)Γ(b)
b>0
Γ((n + 1)/2)
1 + x 2 /n −(n+1)/2 , x ∈ R,

Student fX (x; ν) = √
nπΓ(n/2)
n>0
 n/2
1 1
2
Ji-cuadrada,χ (n), fX (x; n) = x n/2−1 e −x/2 ,
Γ(n/2) 2
x > 0, n ≥ 0

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Densidades discretas
λx −λ
Poisson fX (x; λ) = e , x ∈ N, λ > 0
x!  
n
Binomial fX (x; n, p) = p x (1 − p)n−x , x ∈ {1, . . . , n},
x
p ∈ (0, 1)
Geométrica fX (x; p) = p(1 − p)x , x ∈ {0, 1, 2, . . .}, p ∈ (0, 1]
  
m N −m
x n−k
Hipergeométrica fX (x; N, m, n) =   ,
N
n
N ∈ N, m ∈ 0, 1, . . . , N, n ∈ 0, 1, 2, . . . , N
Γ(k + x) k
Binomial negativa fX (x; k, p) = p (1 − p)x ,
k!Γ(k)
x ∈ {0, 1, 2, . . .}, k > 0, p ∈ (0, 1]
M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM
Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Números aleatorios

Variables aleatorias continuas:


runif(n, min=0, max=1) uniforme
rnorm(n, mean=0, sd=1) gaussiana o normal
rexp(n, rate=1) exponencial
rgamma(n, shape, scale=1) gama
rweibull(n, shape, scale=1) Weibull
rcauchy(n, location=0, scale=1) Cauchy
rbeta(n, shape1, shape2) beta
rt(n, df) t-Student
rchisq(n, df) ji-cuadrada

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM


Introducción a R
Objetos y expresiones
Funciones y control del flujo
Entrada y salida de datos
Manipulación de datos
Distribuciones de probabilidad y generación de números pseudoaleatorios

Números aleatorios

Variables aleatorias discretas:


rpois(n, lambda) Poisson
rbinom(n, size, prob) binomial
rgeom(n, prob) geométrica
rhyper(nn, m, n, k) hipergeométrica
rnbinom(n, size, prob) binomial negativa

M. en C. Benjamı́n Figueroa Solano Facultad de Ciencias, UNAM

También podría gustarte