Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cartagena
2020
Básicas Exactas - UniSinú 0
2
Capítulo 1
Introducción a R y RStudio
1.1. ¾Qué es R?
R software es un entorno y lenguaje de programación diseñado para el aná-
lisis estadístico y gráco. R está formado por un conjunto de herramientas
exibles que pueden ampliarse fácilmente mediante paquetes, librerías o de-
niendo nuestras propias funciones, además es gratuito y de código abierto.
R es producto de la losofía Open Source. Desde sus inicios una extensa co-
munidad de usuarios y programadores de alto nivel contribuye a desarrollar
nuevas funciones, paquetes y actualizaciones que son rápidamente accesibles
a todo público. Esto convierte a R software en una herramienta estadística
estable, conable y a la vanguardia, ya que está sometida a una actualización
permanente.
3
Básicas Exactas - UniSinú 1
R tiene una comunidad académica detrás que provee una muy buena
documentación en línea.
4
1 Básicas Exactas - UniSinú
5
Básicas Exactas - UniSinú 1
https://rstudio.com/products/rstudio/download/
Una vez guardado el archivo, ejecutarlo para instalar RStudio. Seguir las
indicaciones.
6
1 Básicas Exactas - UniSinú
Directamente en la consola
7
Básicas Exactas - UniSinú 1
1. Consola.
>3 + 5
[1] 8
> 2∗14
[1] 28
2. Scripts.
8
1 Básicas Exactas - UniSinú
9
Básicas Exactas - UniSinú 1
10
1 Básicas Exactas - UniSinú
getwd()
11
Básicas Exactas - UniSinú 1
dir()
Opción 2. Proyecto de R.
Para abrir un proyecto hacer doble clic sobre el archivo con extensión
.Rproj o lo abrimos desde el menú de RStudio: File - Open Project. . .
12
1 Básicas Exactas - UniSinú
Una vez instalado el paquete, hay que cargarlo para poderlo utilizar.
Esto se hace con la función library().
13
Básicas Exactas - UniSinú 1
1.3.6. Ayuda en R.
En muchas ocasiones necesitamos ayuda sobre cómo funciona una determi-
nada función, cuáles son sus argumentos, etc. Hay varias formas de pedir la
ayuda de R. Por ejemplo, vamos a pedir la ayuda de la función mean().
healp(mean)
?mean
mean # y pulsar la tecla F1
library()
library(help = foreign)
vignette() # Para ver una lista de las vignettes a las que podemos acceder
por paquete
14
1 Básicas Exactas - UniSinú
Pero sin duda, una de las mejores fuentes de ayudas en R nos las proporcionan
las fuentes conables encontradas en internet.
1.4. La Calculadora de R
Cuando se trabaja en modo interactivo en la consola de R, se deben escribir
las instrucciones a la derecha del símbolo de inicio >. Para ejecutar una ins-
trucción al terminar de escribirla, se debe pulsar la tecla Enter (←-); así por
ejemplo, si junto al símbolo de inicio escribimos la operación 7+8 y pulsamos
enter, R escribirá en la línea siguiente el resultado 15, y a continuación apa-
recerá una nueva línea en blanco encabezada por el símbolo de inicio, donde
podremos seguir escribiendo y ejecutando nuevas instrucciones.
Se puede agrupar más de una instrucción en una sola línea separándolas con
punto y coma. R ejecutará cada una de las instrucciones en el mismo orden
en el que las escribimos.
15
Básicas Exactas - UniSinú 1
[1] 12
[1] 54
> 3+6.5
[1] 9.5
16
1 Básicas Exactas - UniSinú
> 5/3+6
[1] 7.666667
> 4 (-3)
[1] 0.015625
> pi
[1] 3.141593
> 3*pi
[1] 9.424778
17
Básicas Exactas - UniSinú 1
> 3 50
[1] 7.178998e+23
> 3 (-50)
[1] 1.392956e−24
n! = 1 × 2 × 3 × 4 × . . . × n
La notación n
, corresponde a una combinación (se lee n combinado k ) y se
k
dene como
n n!
=
k k!(n − k)!
Las funciones de R se aplican a sus argumentos introduciéndolos entre pa-
réntesis. Veamos algunos ejemplos.
> sqrt(64)
[1] 8
18
1 Básicas Exactas - UniSinú
[1] 7.389056
19
Básicas Exactas - UniSinú 1
> asin(2)
[1] NaN
> sqrt(2) 2 − 2
[1] 4.440892e-16
√
En teoría el resultado debería ser cero. Pero, R opera internamente 2 con
una precisión de aproximadamente 16 cifras decimales, por esta razón no se
obtiene el resultado exacto.
> sqrt(3)
[1] 1.732051
> print(sqrt(3),17)
[1] 1.7320508075688772
> print(sqrt(3),3)
[1] 1.73
20
1 Básicas Exactas - UniSinú
> 2 100
[1] 1.267651e+30
El número máximo de cifras que se puede pedir con print es 22, después de
esta cifra R generará un mensaje de error.
> print(sqrt(3),22)
[1] 1.7320508075688772
> print(sqrt(3),23)
La función print permite indicar las cifras que queremos leer, pero no per-
mite especicar las cifras decimales con las que queremos trabajar. Para
redondear un numero x a una cantidad especíca de n cifras decimales y
trabajar únicamente con esas cifras, se debe usar la función round(x,n). La
√ print y round es la siguiente, print(sqrt(3),3) sigue sien-
diferencia entre
do igual a 3 y R muestra únicamente las tres primeras cifras, en cambio
round(sqrt(3),3) es igual a 1.732.
> round(sqrt(2))
[1] 1
> round(sqrt(2), 0)
[1] 1
21
Básicas Exactas - UniSinú 1
round(x, digits = 0)
donde el valor de digits debe ser un número entero que indique el número de
cifras decimales. Esta sintaxis signica que el valor por defecto, del parametro
es digits 0. Escribir digits = en el argumento para especicar el número de
cifras decimales es optativo, pero se debe mantener el orden de los argumentos
indicado en la ayuda, en este caso, primero el número y luego las cifras. Este
es el motivo por el que podemos escribir round(sqrt(2), 1), en lugar de
round(sqrt(2), digits = 1) . Si cambiamos el orden de los argumentos,
entonces sí hay que especicar el nombre del parametro, como muestra el
siguiente ejemplo:
También puede suceder que una función de dos argumentos tome sólo uno
por defecto, por ejemplo la función log. Su sintaxis completa es log(x,
base = . . .), y si no espccicamos la base, toma su valor por defecto e, y
calcula el logaritmo natural. La funcion round(x) redondea x al valor entero
más cercano (y en caso de empate, al que termina en cifra par). R tambien
dispone de otras funciones que permiten redondear a números enteros en
sentidos especícos:
22
1 Básicas Exactas - UniSinú
> x = 72
[1] 1.414
23
Básicas Exactas - UniSinú 1
Tarnbien se puede asignar un valor a una variable por medio de una echa
− > o < −, compuesta de un guión y un signo de desigualdad, de manera
que el sentido de la echa vaya desde el valor hacia la variable; por ejemplo,
las tres primeras instrucciones siguientes son equivalentes, y asignan el valor
10 a la variable x, mientras que las dos últimas son incorrectas:
> x = 10
> x < − 10
> 10 − > x
> 10 = x
Error in 10 = x : lado izquierdo de la asignación inválida (do
set)
> 10 < − x
Error in 10 = x : lado izquierdo de la asignación inválida (do
set)
Es posible asignar varios valores a una misma variable en una misma sesion,
pero en cada momento, R usará el último valor asignado. Además, es posible
redenir el valor de una variable usando en la nueva denición su valor actual.
Por ejemplo:
>x = 7
> x 2
[1] 49
24
1 Básicas Exactas - UniSinú
>x
[1] 2
[1] 84
Se pueden denir funciones de dos o más variables con function. Por ejem-
plo, para denir la funcion f (x, y) = e2x+y , debemos seguir la siguiente sin-
taxis:
25
Básicas Exactas - UniSinú 1
> f(2,1)
[1] 148.4132
Las funciones no sólo pueden tener como argumentos o resultados solo rul-
meros reales, éstos pueden ser vectores, matrices, tablas de datos, etc. y se
pueden denir por medio de secuencias de instrucciones, en este caso hay
que separar las diferentes instrucciones con signos de punto y coma o escribir
cada instrucción en una nueva línea.
> f = function(x){3x - 1}
>a = 3
>a
[1] 3
> ls()
[1] " a" "f"
> rm(a)
> ls()
26
1 Básicas Exactas - UniSinú
[1] "f"
>a
Función Resultado
sign(n) Signo de n (1 si n > 0, -1 sin n < 0, n ∈ R
> sign (-5)
[1] -1
max(n1, n2) Máximo de los números n1 y n2
> max (5,3)
[1] 5
min(n1, n2) Mínimo de los números n1 y n2
> min (11,7)
[1] 7
factorial(n) Factorial de n(n − 1)(n − 2) . . . 1
> factorial (5)
[1] 120
choose(n,k) Combinación de n con k
> choose (5,2)
[1] 10
27
Básicas Exactas - UniSinú 1
también puede trabajar con ellos de forma excata, de manera que el resul-
tado de expresiones en las que intervienen números racionales es siempre
otro número racional o entero. Como vimos en temas anteriores, R devuelve
aproximaciones decimales de los resultados.
Constante Valor
pi Número π = 3.1415926
> pi
[1] 3.141593
exp(1) Número e = 2.7182818
> exp (1)
[1] 2.718282
inf Innito (por ejemplo 1/0)
> 1/0
[1] Inf
factorial(n) Factorial de n(n − 1)(n − 2) . . . 1
> factorial (5)
[1] 120
NaN Indeterminación (por ejemplo 0/0)
> 0/0
[1] NaN
NA Valor desaparecido
NULL Objeto nulo
28
1 Básicas Exactas - UniSinú
Función Signicado
sin(x) Función Seno
> sin (pi/2)
[1] 1
cos (x) Función Coseno
> cos (pi)
[1] -1
tan (x) Función Tangente
> tan (pi/4)
[1] 1
Función Signicado
exp(x) Función exponencial en base e
> exp (log(5))
[1] 5
log(x) Función logaritmo en base e de x
> log (exp(5))
[1] 5
log10(x) Función logaritmo en base 10 de x
> log10(1000)
[1] 3
log2(x) Función logaritmo en base 2 de x
> log2(16)
[1] 4
exp(x) Función raíz cuadrada de x
> sqrt (64)
[1] 8
29
Básicas Exactas - UniSinú 1
30
Capítulo 2
Vectores y Matrices
2.1. Vectores
Un vector es una serie ordenada de datos. R maneja varios tipos de datos,
entre los cuales se encuentran los siguientes:
31
Básicas Exactas - UniSinú 2
10, 5, 13, 7, 14
[1] 10 5 13 7 14
> nombres
32
2 Básicas Exactas - UniSinú
Función rep
> x = c(1,2,3,4)
[1] 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
33
Básicas Exactas - UniSinú 2
Función seq
Permite construir progresiones aritméticas. Sus usos básicos son los siguien-
tes:
[1] 0 5 10 15 20 25 30 35 40 45
34
2 Básicas Exactas - UniSinú
Función scan
Si ejecutamos la instruccion scan() (con el argumento vacío), R abre en la
consola un entorno de diálogo donde podemos ingresar los datos separados
por espacios en blanco; cada vez que pulsemos la tecla Enter, R importará los
datos que hayamos escrito desde la vez anterior en que la pulsemos y abrirá
una nueva línea donde espera más datos. Cuando terminemos, dejamos la
última línea en blanco (pulsando por última vez la tecla Enter) y R cierra el
vector.
Por ejemplo, para crear un vector que contenga los datos:
13579246
hacemos lo siguiente:
>x
[1] 1 3 5 7 9 2 4 6
35
Básicas Exactas - UniSinú 2
La funcion c que hemos usado para crear vectores en realidad concatena sus
argumentos en un vector (de ahi viene la letra c). Si la aplicamos a vectores,
crea un nuevo vector concatenando sus elementos. Podemos mezclar vectores
y datos en sus argumentos.
> x = c(0,x,20,25)
[1] 0 1 1 1 1 1 1 1 1 1 1 11 12 13 14 15 16 17 18 19 20 20 25
36
2 Básicas Exactas - UniSinú
> fix(x)
> x = seq(2,40, by = 4)
>x
[1] 2 6 10 14 18 22 26 30 34 38
>x + 3
[1] 5 9 13 17 21 25 29 33 37 41
37
Básicas Exactas - UniSinú 2
> 3*x
[1] 6 18 30 42 54 66 78 90 102 114
> sqrt(x)
[1]1.414214 2.449490 3.162278 3.741657 4.242641 4.690416
5.099020 5.477226
[9]5.830952 6.164414
> 2∧x
[1] 4 64 1024 16384 262144 4194304
[7] 67108864 1073741824 17179869184 274877906944
> x∧2
[1] 4 36 100 196 324 484 676 900 1156 1444
1, 2, 3, . . . , x
> f = function(x){mean(1:x)}
> f(20)
[1] 10.5
> f(30)
[1] 15.5
38
2 Básicas Exactas - UniSinú
Resulta que no podemos aplicar esta función a todas las entradas de un vector
x escribiendo simplemente f(x), como veremos en el siguiente ejemplo:
> f(20:30)
[1] 10.5
Warning message:
In 1:x : numerical expression has 11 elements: only the rst used
Lo anterior nos permite crear vectores de la forma (xn )n=a,··· ,b , cuyos términos
serían xa , xa+1 , xa+2 , · · · , xb . Por ejemplo para denir el vector
x = (2 · 3n − 1)n=1,··· ,10
39
Básicas Exactas - UniSinú 2
> 2 * 3 n - 1
[1] 5 17 53 161 485 1457 4373 13121 39365 118097
> n = 0:20
> y = n/(n 2 + 1)
>y
[1]0.00000000 0.50000000 0.40000000 0.30000000 0.23529412
0.19230769 0.16216216
[8]0.14000000 0.12307692 0.10975610 0.09900990 0.09016393
0.08275862 0.07647059
[15]0.07106599 0.06637168 0.06225681 0.05862069 0.05538462
0.05248619 0.04987531
40
2 Básicas Exactas - UniSinú
diff: calcula el vector formado por las diferencias sucesivas entre en-
tradas del vector original.
rev: invierte el orden de los elementos del vector, por tanto, rev(sort())
es otra opción para ordenar de forma decreciente.
> x = c(9,4,5,3,8,10,7,5,4,2,11,6)
> length(x)
[1] 12
> max(x)
[1] 11
> min(x)
[1] 2
> sum(x)
[1] 74
> prod(x)
[1] 798336000
> mean(x)
[1] 6.166667
> cumsum(x)
[1] 9 13 18 21 29 39 46 51 55 57 68 74
41
Básicas Exactas - UniSinú 2
> diff(x)
[1] -5 1 -2 5 2 -3 -2 -1 -2 9 -5
> sort(x)
[1] 2 3 4 4 5 5 6 7 8 9 10 11
> rev(x)
[1] 6 11 2 4 5 7 10 8 3 5 4 9
> n = 0:500
> sum(1/(n 2 + 1))
[1] 2.074676
42
2 Básicas Exactas - UniSinú
> n = 0:50
> x = 2 (-n)
> S = cumsum(x)
>S
43