#Sesión 1 #R Script (CUADRANTE 1): Lo más importante es que aquí se escriben los códigos, se ejecutan con botón “Run”, el # es para comentarios los cuales no se ejecutan y el R Script se guarda.

#Consola (CUADRANTE 3): Escribir códigos, enter para ejecutar, en tiempo real (no se guarda), lo más importante es que se observan los resultados

#Objetos (CUADRANTE 2): Visualizar variables / tablas guardadas

#Gráficos(CUADRANTE 4): Para visualizar gráficas

#Asignar una variable

x <- 3
y <- 2

#Imprimir el resultado

x
## [1] 3
y
## [1] 2

#Operaciones básicas

suma <- x + y
suma
## [1] 5

#Resta -, Multiplicación *, División /

division_tradicional <- x/y
division_tradicional
## [1] 1.5
division_entera <- x %/% y
division_entera
## [1] 1
redondear_arriba <- ceiling(x/y)
redondear_arriba
## [1] 2
redondear_abajo <- floor(x/y)
redondear_abajo
## [1] 1
residuo <- x %% y
residuo
## [1] 1
potencia <- x ^ 2
potencia
## [1] 9
raiz <- x ^ (1/2)
raiz
## [1] 1.732051
exponencial <- exp(1)
exponencial
## [1] 2.718282
absoluto <- abs (x)
absoluto
## [1] 3
signo <- sign(x)
signo 
## [1] 1

#Constantes

pi
## [1] 3.141593
radio <- 10
area_circulo <- pi * radio ^ 2
area_circulo
## [1] 314.1593

#Vectores (columnas de datos)

#con comas se separan los valores que van en cada columna

a <- c(1,2,3,4,5)
a
## [1] 1 2 3 4 5
# 2 puntos significa números enteros consecutivos, en este caso es desde el 1 hasta el 100 y ya no tienes que estar separando todo con comas.
b <- c(1:100)
b
##   [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
##  [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36
##  [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54
##  [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72
##  [73]  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
##  [91]  91  92  93  94  95  96  97  98  99 100
#esto debajo es para que se vaya de 0.5 en 0.5 
c <- seq(1,100, by = 0.5)
c
##   [1]   1.0   1.5   2.0   2.5   3.0   3.5   4.0   4.5   5.0   5.5   6.0   6.5
##  [13]   7.0   7.5   8.0   8.5   9.0   9.5  10.0  10.5  11.0  11.5  12.0  12.5
##  [25]  13.0  13.5  14.0  14.5  15.0  15.5  16.0  16.5  17.0  17.5  18.0  18.5
##  [37]  19.0  19.5  20.0  20.5  21.0  21.5  22.0  22.5  23.0  23.5  24.0  24.5
##  [49]  25.0  25.5  26.0  26.5  27.0  27.5  28.0  28.5  29.0  29.5  30.0  30.5
##  [61]  31.0  31.5  32.0  32.5  33.0  33.5  34.0  34.5  35.0  35.5  36.0  36.5
##  [73]  37.0  37.5  38.0  38.5  39.0  39.5  40.0  40.5  41.0  41.5  42.0  42.5
##  [85]  43.0  43.5  44.0  44.5  45.0  45.5  46.0  46.5  47.0  47.5  48.0  48.5
##  [97]  49.0  49.5  50.0  50.5  51.0  51.5  52.0  52.5  53.0  53.5  54.0  54.5
## [109]  55.0  55.5  56.0  56.5  57.0  57.5  58.0  58.5  59.0  59.5  60.0  60.5
## [121]  61.0  61.5  62.0  62.5  63.0  63.5  64.0  64.5  65.0  65.5  66.0  66.5
## [133]  67.0  67.5  68.0  68.5  69.0  69.5  70.0  70.5  71.0  71.5  72.0  72.5
## [145]  73.0  73.5  74.0  74.5  75.0  75.5  76.0  76.5  77.0  77.5  78.0  78.5
## [157]  79.0  79.5  80.0  80.5  81.0  81.5  82.0  82.5  83.0  83.5  84.0  84.5
## [169]  85.0  85.5  86.0  86.5  87.0  87.5  88.0  88.5  89.0  89.5  90.0  90.5
## [181]  91.0  91.5  92.0  92.5  93.0  93.5  94.0  94.5  95.0  95.5  96.0  96.5
## [193]  97.0  97.5  98.0  98.5  99.0  99.5 100.0
#para una columna que quieres que tenga 40 veces el cero:
d <- rep(0, times =40)
d
##  [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [39] 0 0
#si en vez de números quieres palabras:
nombres <- c("Raúl", "Juan", "Ana", "Diego", "Ricardo")
nombres
## [1] "Raúl"    "Juan"    "Ana"     "Diego"   "Ricardo"
edad <- c(20,25,10, 20, 30)
edad
## [1] 20 25 10 20 30
tabla <- data.frame(nombres,edad)
tabla
##   nombres edad
## 1    Raúl   20
## 2    Juan   25
## 3     Ana   10
## 4   Diego   20
## 5 Ricardo   30
#para analizar tablas:
summary(tabla)
##    nombres               edad   
##  Length:5           Min.   :10  
##  Class :character   1st Qu.:20  
##  Mode  :character   Median :20  
##                     Mean   :21  
##                     3rd Qu.:25  
##                     Max.   :30
#estructura de la tabla
str(tabla)
## 'data.frame':    5 obs. of  2 variables:
##  $ nombres: chr  "Raúl" "Juan" "Ana" "Diego" ...
##  $ edad   : num  20 25 10 20 30
#si quieres llamar una de las columnas de la tabla:

tabla$edad
## [1] 20 25 10 20 30
#para agregar una columna que tenga la edad en meses: 
tabla$meses <- tabla$edad * 12
tabla
##   nombres edad meses
## 1    Raúl   20   240
## 2    Juan   25   300
## 3     Ana   10   120
## 4   Diego   20   240
## 5 Ricardo   30   360
#Ejercicio 1
#Generar una tabla con el nombre de los pacientes, su peso, su IMC y su clasificación
#utilizar ifelse(condición, cierto falso) para el IMC

nombres <- c("Daniela", "Viveka", "Sofía", "Maria")

peso <- c(60, 60, 56, 59)

altura <- c(1.60, 1.64, 1.55, 1.67)

tabla_ejercicio <- data.frame(nombres, peso, altura)
tabla_ejercicio
##   nombres peso altura
## 1 Daniela   60   1.60
## 2  Viveka   60   1.64
## 3   Sofía   56   1.55
## 4   Maria   59   1.67
tabla_ejercicio$IMC <- tabla_ejercicio$peso / tabla_ejercicio$altura ^ 2 
tabla_ejercicio
##   nombres peso altura      IMC
## 1 Daniela   60   1.60 23.43750
## 2  Viveka   60   1.64 22.30815
## 3   Sofía   56   1.55 23.30905
## 4   Maria   59   1.67 21.15529
tabla_ejercicio$clasificacion <- ifelse (tabla_ejercicio$IMC < 18.5, "Bajo peso",
                               ifelse(tabla_ejercicio$IMC <= 24.9, "Normal",
                               ifelse(tabla_ejercicio$IMC <= 29.9, "Sobrepeso", "Obesidad")))
tabla_ejercicio
##   nombres peso altura      IMC clasificacion
## 1 Daniela   60   1.60 23.43750        Normal
## 2  Viveka   60   1.64 22.30815        Normal
## 3   Sofía   56   1.55 23.30905        Normal
## 4   Maria   59   1.67 21.15529        Normal
#Continuación de vectores
longitud <- length(a)
longitud
## [1] 5
#poner numeros de mas chico a mas grande
orden_ascendente <- sort(tabla_ejercicio$IMC)
orden_ascendente
## [1] 21.15529 22.30815 23.30905 23.43750
#poner numeros de mas grande a mas chico
orden_descendente <- sort(tabla_ejercicio$IMC, decreasing = TRUE)
orden_descendente
## [1] 23.43750 23.30905 22.30815 21.15529
#Gráficas
plot(altura, peso, main = "Gráfica de Altura y Peso", xlab= "altura", ylab="peso")