Fecha de la ultima revisión

## [1] "2023-07-31"

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

  1. Familiarizarse con funciones básica.
  2. Reconocer que las función matemáticas en R son igual como los procesos que aprendieron en escuela elemental.
  3. Comenzar a aprender unas funciones especializados.

Matemática básica

Sumar, restar, dividir y multiplicar

Sumar

Se suma usando el +.

1+1
## [1] 2
1+1+3+4
## [1] 9

Restar

Se resta usando -

1-1
## [1] 0
100-22
## [1] 78

Multiplicar

Se multiplica usando el “*”

1*2
## [1] 2
10*2.46578
## [1] 24.6578

División

Se divide usando /

1/2
## [1] 0.5
6549/76576
## [1] 0.08552288

Elevar a una potencia

Se eleva un valor usando el ^ es el acento circunflejo

2^2  
## [1] 4
4^2.6756
## [1] 40.81988

factorial

Se usa la función factorial, donde el factorial de 4 es la siguiente multiplicación (4x3x2x1).

factorial(4)
## [1] 24

La raiz cuadrada

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

El orden de las operaciones matemáticas

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

Asigñar variables

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.

x=3
x
## [1] 3
y=5
y
## [1] 5
gato=7
gato
## [1] 7

Manipulando variables

Las variables se pueden restar, multiplicar, dividir, sumar o muchas otras funciones. Por ejemplo aguí se multiplica y se manipula la variable de y

x*log10(y)
## [1] 2.09691

Conjuntos de datos

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.

Largo_de_la_Hoja=c(1,2,3,4,5,6,7,8,9,9)
Largo_de_la_Hoja
##  [1] 1 2 3 4 5 6 7 8 9 9
Ancho_de_la_Hoja=c(2,3,4,5,6,7,8,9,9,10)
suma=Largo_de_la_Hoja+Ancho_de_la_Hoja
suma
##  [1]  3  5  7  9 11 13 15 17 18 19
Largo_de_la_Hoja*Ancho_de_la_Hoja
##  [1]  2  6 12 20 30 42 56 72 81 90
Largo_de_la_Hoja-Ancho_de_la_Hoja
##  [1] -1 -1 -1 -1 -1 -1 -1 -1  0 -1
Largo_de_la_Hoja^Ancho_de_la_Hoja
##  [1]          1          8         81       1024      15625     279936
##  [7]    5764801  134217728  387420489 3486784401

Count( )

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

Calculos básicos

  • Para calcular el promedio se usa la función mean()
  • Para calcular la mediana se usa la función median()
bebe=c(2,2,0,1,7,5,3,14) # El números de bebés que quieren mis estudiantes
mean(bebe)
## [1] 4.25
median(bebe)
## [1] 2.5

Crear una lista con factores y un data frame

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.

gender=c("f","f","m","f","m","m","f","f")

bebe
## [1]  2  2  0  1  7  5  3 14
gender
## [1] "f" "f" "m" "f" "m" "m" "f" "f"
ElF_PR=data.frame(bebe, gender)
ElF_PR
bebegender
2f
2f
0m
1f
7m
5m
3f
14f
mean(ElF_PR$bebe) # este es la manera de calcular el promedio en un data frame
## [1] 4.25

Fechas

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).

fecha1=as.Date("2012-06-28")
fecha2=as.Date("2012-06-30")
fecha3=as.Date("1970-01-01")
fechaold=as.Date("1969-01-01")
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.

fecha4=as.POSIXct("2012-06-28 17:42:00")
fecha5=as.POSIXct("2012-06-30 17:42:01")
fecha6=as.POSIXct("1970-01-01 00:01")
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

Lógico (True o False)

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

La función ==

Esta función evalúa si las variables son iguales.

# Un ejemplo sencillo
x=3
x
## [1] 3
y=5
y
## [1] 5
x==y
## [1] FALSE
# Evaluar dos listas
m=c(1:10)
m
##  [1]  1  2  3  4  5  6  7  8  9 10
n=c(1,2,4:11)
n
##  [1]  1  2  4  5  6  7  8  9 10 11
m
##  [1]  1  2  3  4  5  6  7  8  9 10
m==n
##  [1]  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

La función “no es” con !

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
m!=n
##  [1] FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE

data.frames

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.

Edad=10:1
Edad
##  [1] 10  9  8  7  6  5  4  3  2  1
Distancia_del_trabajo=rnorm(10, 100, 10)
Distancia_del_trabajo
##  [1]  88.63246 101.76715 104.68712  80.63420 107.38744  87.28279  81.53581
##  [8] 101.33883  92.80898  97.78598
Ciudad=c("Fajardo", "Carolina", "Luquillo","Gurabo", "Rio_Grande", "Ceiba","Las_Piedras", "Caguas","Maunabo", "Sturgeon_Falls")
Ciudad
##  [1] "Fajardo"        "Carolina"       "Luquillo"       "Gurabo"        
##  [5] "Rio_Grande"     "Ceiba"          "Las_Piedras"    "Caguas"        
##  [9] "Maunabo"        "Sturgeon_Falls"
misDatos=data.frame(Edad,Distancia_del_trabajo,Ciudad)  # La función de unir las listas en un data frame
misDatos
EdadDistancia_del_trabajoCiudad
1088.6Fajardo
9102  Carolina
8105  Luquillo
780.6Gurabo
6107  Rio_Grande
587.3Ceiba
481.5Las_Piedras
3101  Caguas
292.8Maunabo
197.8Sturgeon_Falls

Funciones comunes

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 
EdadDistancia_del_trabajoCiudad
1088.6Fajardo
9102  Carolina
8105  Luquillo
780.6Gurabo
6107  Rio_Grande
587.3Ceiba
tail(misDatos)   # ver las ultimas 6 filas
EdadDistancia_del_trabajoCiudad
6107  Rio_Grande
587.3Ceiba
481.5Las_Piedras
3101  Caguas
292.8Maunabo
197.8Sturgeon_Falls
head(misDatos, n=8)   # ver las primeras 8 filas
EdadDistancia_del_trabajoCiudad
1088.6Fajardo
9102  Carolina
8105  Luquillo
780.6Gurabo
6107  Rio_Grande
587.3Ceiba
481.5Las_Piedras
3101  Caguas
class(misDatos) # saber cual tipo de organización de datos 
## [1] "data.frame"