Fecha de la ultima revisión

## [1] "2024-04-15"

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
##   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

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]  94.77036 117.83254  84.31576  89.19955 128.04005 100.92805  66.66620
##  [8] 101.49725 105.89068  95.18937
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
##    Edad Distancia_del_trabajo         Ciudad
## 1    10              94.77036        Fajardo
## 2     9             117.83254       Carolina
## 3     8              84.31576       Luquillo
## 4     7              89.19955         Gurabo
## 5     6             128.04005     Rio_Grande
## 6     5             100.92805          Ceiba
## 7     4              66.66620    Las_Piedras
## 8     3             101.49725         Caguas
## 9     2             105.89068        Maunabo
## 10    1              95.18937 Sturgeon_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 
##   Edad Distancia_del_trabajo     Ciudad
## 1   10              94.77036    Fajardo
## 2    9             117.83254   Carolina
## 3    8              84.31576   Luquillo
## 4    7              89.19955     Gurabo
## 5    6             128.04005 Rio_Grande
## 6    5             100.92805      Ceiba
tail(misDatos)   # ver las ultimas 6 filas
##    Edad Distancia_del_trabajo         Ciudad
## 5     6             128.04005     Rio_Grande
## 6     5             100.92805          Ceiba
## 7     4              66.66620    Las_Piedras
## 8     3             101.49725         Caguas
## 9     2             105.89068        Maunabo
## 10    1              95.18937 Sturgeon_Falls
head(misDatos, n=8)   # ver las primeras 8 filas
##   Edad Distancia_del_trabajo      Ciudad
## 1   10              94.77036     Fajardo
## 2    9             117.83254    Carolina
## 3    8              84.31576    Luquillo
## 4    7              89.19955      Gurabo
## 5    6             128.04005  Rio_Grande
## 6    5             100.92805       Ceiba
## 7    4              66.66620 Las_Piedras
## 8    3             101.49725      Caguas
class(misDatos) # saber cual tipo de organización de datos 
## [1] "data.frame"