Fecha de la ultima revisión
## [1] "2021-02-01"
En este modulo veremos como se hace cálculos básicos en R. Nota que aquí estamos usando R, como si fuese una calculadora. Realmente para la gran mayoría de los ejemplos aquí no hay ninguna necesidad de utilizar R para los siguientes análisis. Los objetivos son
Se suma usando el +.
1+1
## [1] 2
1+1+3+4
## [1] 9
Se resta usando -
1-1
## [1] 0
100-22
## [1] 78
Se multiplica usando el "*"
1*2
## [1] 2
10*2.46578
## [1] 24.6578
Se divide usando /
1/2
## [1] 0.5
6549/76576
## [1] 0.08552288
Se eleva un valor usando el ^ es el acento circunflejo
2^2
## [1] 4
4^2.6756
## [1] 40.81988
Se usa la función factorial, donde el factorial de 4 es la siguiente multiplicación (4x3x2x1).
factorial(4)
## [1] 24
La raiz cuadrada es la función sqrt( ), que se refiere a square root
sqrt(2)
## [1] 1.414214
sqrt(3.86)
## [1] 1.964688
Este sigue exactamente el mismo orden que se aprendió en sus clases de matemática básicas.
6+3^2
## [1] 15
4*(3+2)^4
## [1] 2500
La ventaja de los programados de análisis es poder asignar variables a valores individuales o conjuntos de valores. En el primer paso asignamos un valor a la variables “x” e “y”. Nota que cuando se asigna una variable para observar hay que llamar esa variable por su nombre, en este caso “x” e “y”. Los nombres de variables pueden ser cualquier “nombre”, por ejemplo gato=7.
=3
x x
## [1] 3
=5
y y
## [1] 5
=7
gato gato
## [1] 7
Las variables se pueden restar, multiplicar, dividir, sumar o muchas otras funciones. Por ejemplo aguí se multiplica y se manipula la variable de y
*log10(y) x
## [1] 2.09691
Para representar un conjunto de datos en una lista con una variable se usa la c(). De esta forma uno puede identificar un grupo de datos con un nombre de una variable. Nota que se identifica el primer grupo de datos con el nombre de Largo_de_la_Hoja, Este nombre no es muy practico, ya que es demasiado largo, pero demuestra la capacidad de R de utulizar casi cualquier nombre para identificar datos.
=c(1,2,3,4,5,6,7,8,9,9)
Largo_de_la_Hoja Largo_de_la_Hoja
## [1] 1 2 3 4 5 6 7 8 9 9
=c(2,3,4,5,6,7,8,9,9,10)
Ancho_de_la_Hoja=Largo_de_la_Hoja+Ancho_de_la_Hoja
suma suma
## [1] 3 5 7 9 11 13 15 17 18 19
*Ancho_de_la_Hoja Largo_de_la_Hoja
## [1] 2 6 12 20 30 42 56 72 81 90
-Ancho_de_la_Hoja Largo_de_la_Hoja
## [1] -1 -1 -1 -1 -1 -1 -1 -1 0 -1
^Ancho_de_la_Hoja Largo_de_la_Hoja
## [1] 1 8 81 1024 15625 279936
## [7] 5764801 134217728 387420489 3486784401
Contar cuantos valores en una lista o columna de datos con count()
length(Largo_de_la_Hoja)
## [1] 10
length(Ancho_de_la_Hoja)
## [1] 10
=c(2,2,0,1,7,5,3,14) # El números de bebés que quieren mis estudiantes
bebemean(bebe)
## [1] 4.25
median(bebe)
## [1] 2.5
Para crear una lista de factores hay utilizar las comillas "el factor para clarificar que son factores Con la función data.frame( ) se puede unir listas en un data frame.
=c("f","f","m","f","m","m","f","f")
gender
bebe
## [1] 2 2 0 1 7 5 3 14
gender
## [1] "f" "f" "m" "f" "m" "m" "f" "f"
=data.frame(bebe, gender)
ElF_PR ElF_PR
## bebe gender
## 1 2 f
## 2 2 f
## 3 0 m
## 4 1 f
## 5 7 m
## 6 5 m
## 7 3 f
## 8 14 f
mean(ElF_PR$bebe) # este es la manera de calcular el promedio en un data frame
## [1] 4.25
Las fechas son un objeto que representa el día desde el 1ro de enero 1970. Para tener un valor númerico se utiliza la función as.numeric(fecha).
=as.Date("2012-06-28")
fecha1=as.Date("2012-06-30")
fecha2=as.Date("1970-01-01")
fecha3=as.Date("1969-01-01")
fechaold fecha1
## [1] "2012-06-28"
fecha2
## [1] "2012-06-30"
fecha3
## [1] "1970-01-01"
fechaold
## [1] "1969-01-01"
as.numeric(fecha1) # El dia cero es el 1ro de enero 1970.
## [1] 15519
as.numeric(fecha2)
## [1] 15521
as.numeric(fecha3)
## [1] 0
as.numeric(fechaold)
## [1] -365
La función as.POSIXct() convierte los valores de una fecha en segundo y cuando se pide as.numeric() uno tiene el número de segundos desde el 1ro de enero del 1970.
=as.POSIXct("2012-06-28 17:42:00")
fecha4=as.POSIXct("2012-06-30 17:42:01")
fecha5=as.POSIXct("1970-01-01 00:01")
fecha6 fecha4
## [1] "2012-06-28 17:42:00 AST"
fecha5
## [1] "2012-06-30 17:42:01 AST"
fecha6
## [1] "1970-01-01 00:01:00 AST"
as.numeric(fecha4) # los valores en segundos
## [1] 1340919720
as.numeric(fecha5)
## [1] 1341092521
as.numeric(fecha6)
## [1] 14460
Cuando se usa True es como decir que es un valor de 1, True = 1, y si tiene un valor de False es un valor de cero, False = 0. Evalúan las siguientes ecuaciones para evaluar los que hace estas funciones.
TRUE*5
## [1] 5
FALSE*5
## [1] 0
FALSE+7
## [1] 7
TRUE+7
## [1] 8
Esta función evalúa si las variables son iguales.
# Un ejemplo sencillo
=3
x x
## [1] 3
=5
y y
## [1] 5
==y x
## [1] FALSE
# Evaluar dos listas
=c(1:10)
m m
## [1] 1 2 3 4 5 6 7 8 9 10
=c(1,2,4:11)
n n
## [1] 1 2 4 5 6 7 8 9 10 11
m
## [1] 1 2 3 4 5 6 7 8 9 10
==n m
## [1] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Añadiendo el punto de exclamación es el contrario de la función anterior de ==. Ahora los que son iguales serán False y los disimilares serán True. Evalúan las siguientes expresiones.
# Un ejemplo sencillo
2!=3
## [1] TRUE
# Comparando listas
!=n m
## [1] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Un data frame es muy similar a una hoja de Excel, en que tenemos los datos organizando en filas para los individuos y en columnas para las variables.
=10:1
Edad Edad
## [1] 10 9 8 7 6 5 4 3 2 1
=rnorm(10, 100, 10)
Distancia_del_trabajo Distancia_del_trabajo
## [1] 104.07431 96.30423 120.70703 103.83413 103.32816 94.59336 107.90696
## [8] 102.61657 113.36546 110.98649
=c("Fajardo", "Carolina", "Luquillo","Gurabo", "Rio_Grande", "Ceiba","Las_Piedras", "Caguas","Maunabo", "Sturgeon_Falls")
Ciudad Ciudad
## [1] "Fajardo" "Carolina" "Luquillo" "Gurabo"
## [5] "Rio_Grande" "Ceiba" "Las_Piedras" "Caguas"
## [9] "Maunabo" "Sturgeon_Falls"
=data.frame(Edad,Distancia_del_trabajo,Ciudad) # La función de unir las listas en un data frame
misDatos misDatos
## Edad Distancia_del_trabajo Ciudad
## 1 10 104.07431 Fajardo
## 2 9 96.30423 Carolina
## 3 8 120.70703 Luquillo
## 4 7 103.83413 Gurabo
## 5 6 103.32816 Rio_Grande
## 6 5 94.59336 Ceiba
## 7 4 107.90696 Las_Piedras
## 8 3 102.61657 Caguas
## 9 2 113.36546 Maunabo
## 10 1 110.98649 Sturgeon_Falls
nrow(misDatos) # el número de filas
## [1] 10
ncol(misDatos) # el número de columnas
## [1] 3
dim(misDatos) # la dimenciones del data frame (num de filas, num. de columnas)
## [1] 10 3
names(misDatos) # el nombre de las columnas
## [1] "Edad" "Distancia_del_trabajo" "Ciudad"
names(misDatos)[2:3] # El nombre de la columna 2 y 3
## [1] "Distancia_del_trabajo" "Ciudad"
rownames(misDatos) # El nombre de las filas
## [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
head(misDatos) # ver las primeras 6 filas
## Edad Distancia_del_trabajo Ciudad
## 1 10 104.07431 Fajardo
## 2 9 96.30423 Carolina
## 3 8 120.70703 Luquillo
## 4 7 103.83413 Gurabo
## 5 6 103.32816 Rio_Grande
## 6 5 94.59336 Ceiba
tail(misDatos) # ver las ultimas 6 filas
## Edad Distancia_del_trabajo Ciudad
## 5 6 103.32816 Rio_Grande
## 6 5 94.59336 Ceiba
## 7 4 107.90696 Las_Piedras
## 8 3 102.61657 Caguas
## 9 2 113.36546 Maunabo
## 10 1 110.98649 Sturgeon_Falls
head(misDatos, n=8) # ver las primeras 8 filas
## Edad Distancia_del_trabajo Ciudad
## 1 10 104.07431 Fajardo
## 2 9 96.30423 Carolina
## 3 8 120.70703 Luquillo
## 4 7 103.83413 Gurabo
## 5 6 103.32816 Rio_Grande
## 6 5 94.59336 Ceiba
## 7 4 107.90696 Las_Piedras
## 8 3 102.61657 Caguas
class(misDatos) # saber cual tipo de organización de datos
## [1] "data.frame"