# comandos básicos 

# asignación de variables
x <- 3
y <- 2

# impresión de resultados
x 
## [1] 3
y
## [1] 2
# operaciónes aritméticas
suma <- x+y
suma
## [1] 5
resta <- x-y
resta
## [1] 1
multiplicacion <- x*y
multiplicacion
## [1] 6
division <- x/y
division
## [1] 1.5
division_entera <- x%/%y # division entera sin decimales
division_entera
## [1] 1
residuo <- x%%y
residuo
## [1] 1
potencia <- x**2 # tambien con ^ 
potencia
## [1] 9
# funciones matemáticas 
raiz_cuadrada <- sqrt(x)
raiz_cuadrada
## [1] 1.732051
raiz_cubica <- x^(1/3)
raiz_cubica
## [1] 1.44225
exponencial <- exp(1)
exponencial 
## [1] 2.718282
absoluto <- abs(x)
absoluto
## [1] 3
signo <- sign(x)
signo
## [1] 1
redondeo_arriba <- ceiling(division)
redondeo_arriba
## [1] 2
redondeo_abajo <- floor(division)
redondeo_abajo
## [1] 1
truncar <- trunc(division)
truncar
## [1] 1
# constantes
pi
## [1] 3.141593
radio <- 5 
area_circulo <- pi*radio^2
area_circulo
## [1] 78.53982
# vectores
a <- c(1,2,3,4,5) # juntarlos
a
## [1] 1 2 3 4 5
b <- c(1:100) # secuencia de enteros
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
c <- seq(2,5, by=0.5) # secuencia específica, no lo quiero entero, lo quiero de .5 a .5.
c
## [1] 2.0 2.5 3.0 3.5 4.0 4.5 5.0
d <- rep(1:2, times = 3) # repetir vector
d
## [1] 1 2 1 2 1 2
e <- rep(1,2, each = 3) # repetir elementos
e
## [1] 1 1 1 1 1 1
f <- c("pera","manzana", "kiwi", "fresa")
f
## [1] "pera"    "manzana" "kiwi"    "fresa"
longitud <- length(a)
longitud
## [1] 5
promedio <- mean(a)
promedio
## [1] 3
rango <- max(a) - min(a)
rango
## [1] 4
resumen <- summary(a)
resumen
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       1       2       3       3       4       5
orden_ascendente <- sort(a)
orden_ascendente 
## [1] 1 2 3 4 5
orden_descendente <- sort(a, decreasing=TRUE)
orden_descendente
## [1] 5 4 3 2 1
g <- c(1,2,3,4,5)

suma_vectores <- a+g
suma_vectores
## [1]  2  4  6  8 10
# tipos de datos
# caracter: palabras, van siempre entre comillas.
# numericos: números.
# lógicos: TRUE, FALSE.
# Factores: Nuveles preestablecidos "1", "0".
# para convertir Ej: as.numeric

# graficar
plot(a,g, main= "Ventas por mes", xlab = "mes", ylab="M USD", type = "b")

# operadores relacionales
# igual a==b
# desigual a!=b
# Mayor que a>b
# Menor que a<b
# Mayor o igual que a>=b
# Mayor o igual que a<=b

# condicionales

calificacion <- 71

if (calificacion>=70) {
  print("Pasa") 
  } else {
    print("No pasa")
  }
## [1] "Pasa"
# Tabla
tabla <- data.frame(a,g)
tabla
##   a g
## 1 1 1
## 2 2 2
## 3 3 3
## 4 4 4
## 5 5 5
# ejercicio 1
# registra el nombre, peso, altura de alumnos,
# calcula su IMC y asigna su categoría.

nombre <- c("Marcelo", "Santiago", "Kamilah", "Luis", "Meme")
altura <- c(1.60, 1.85, 1.65, 1.75, 1.96)
peso <- c(60, 80, 60, 80, 597)
df <- data.frame(nombre, altura, peso)
df$IMC <- df$peso/df$altura**2
df$clasificacion <- ifelse(df$IMC<18.5, "Peso Bajo",
                           ifelse(df$IMC<25, "Normal",
                                  ifelse(df$IMC<30, "Sobrepeso",
                                         ifelse(df$IMC<35, "Obesidad Grado 1",
                                                ifelse(df$IMC<40, "Obesidad Grado 2",
                                                       "Obesidad Grado 3")))))
LS0tCnRpdGxlOiAiQ29uY2VwdG9zIELDoXNpY29zIgphdXRob3I6ICJNYXJjZWxvIFNhbGF6YXIgQTAxNzIyMTkyIgpkYXRlOiAiMjAyNi0wOC0xNyIKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IFRSVUUKICAgIHRvY19mbG9hdDogVFJVRQogICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgdGhlbWU6IGNvc21vIAotLS0KYGBge3J9CiMgY29tYW5kb3MgYsOhc2ljb3MgCgojIGFzaWduYWNpw7NuIGRlIHZhcmlhYmxlcwp4IDwtIDMKeSA8LSAyCgojIGltcHJlc2nDs24gZGUgcmVzdWx0YWRvcwp4IAp5CgojIG9wZXJhY2nDs25lcyBhcml0bcOpdGljYXMKc3VtYSA8LSB4K3kKc3VtYQoKcmVzdGEgPC0geC15CnJlc3RhCgptdWx0aXBsaWNhY2lvbiA8LSB4KnkKbXVsdGlwbGljYWNpb24KCmRpdmlzaW9uIDwtIHgveQpkaXZpc2lvbgoKZGl2aXNpb25fZW50ZXJhIDwtIHglLyV5ICMgZGl2aXNpb24gZW50ZXJhIHNpbiBkZWNpbWFsZXMKZGl2aXNpb25fZW50ZXJhCgpyZXNpZHVvIDwtIHglJXkKcmVzaWR1bwoKcG90ZW5jaWEgPC0geCoqMiAjIHRhbWJpZW4gY29uIF4gCnBvdGVuY2lhCgojIGZ1bmNpb25lcyBtYXRlbcOhdGljYXMgCnJhaXpfY3VhZHJhZGEgPC0gc3FydCh4KQpyYWl6X2N1YWRyYWRhCgpyYWl6X2N1YmljYSA8LSB4XigxLzMpCnJhaXpfY3ViaWNhCgpleHBvbmVuY2lhbCA8LSBleHAoMSkKZXhwb25lbmNpYWwgCgphYnNvbHV0byA8LSBhYnMoeCkKYWJzb2x1dG8KCnNpZ25vIDwtIHNpZ24oeCkKc2lnbm8KCnJlZG9uZGVvX2FycmliYSA8LSBjZWlsaW5nKGRpdmlzaW9uKQpyZWRvbmRlb19hcnJpYmEKCnJlZG9uZGVvX2FiYWpvIDwtIGZsb29yKGRpdmlzaW9uKQpyZWRvbmRlb19hYmFqbwoKdHJ1bmNhciA8LSB0cnVuYyhkaXZpc2lvbikKdHJ1bmNhcgoKIyBjb25zdGFudGVzCnBpCnJhZGlvIDwtIDUgCmFyZWFfY2lyY3VsbyA8LSBwaSpyYWRpb14yCmFyZWFfY2lyY3VsbwoKIyB2ZWN0b3JlcwphIDwtIGMoMSwyLDMsNCw1KSAjIGp1bnRhcmxvcwphCgpiIDwtIGMoMToxMDApICMgc2VjdWVuY2lhIGRlIGVudGVyb3MKYgoKYyA8LSBzZXEoMiw1LCBieT0wLjUpICMgc2VjdWVuY2lhIGVzcGVjw61maWNhLCBubyBsbyBxdWllcm8gZW50ZXJvLCBsbyBxdWllcm8gZGUgLjUgYSAuNS4KYwoKZCA8LSByZXAoMToyLCB0aW1lcyA9IDMpICMgcmVwZXRpciB2ZWN0b3IKZAoKZSA8LSByZXAoMSwyLCBlYWNoID0gMykgIyByZXBldGlyIGVsZW1lbnRvcwplCgpmIDwtIGMoInBlcmEiLCJtYW56YW5hIiwgImtpd2kiLCAiZnJlc2EiKQpmCgpsb25naXR1ZCA8LSBsZW5ndGgoYSkKbG9uZ2l0dWQKCnByb21lZGlvIDwtIG1lYW4oYSkKcHJvbWVkaW8KCnJhbmdvIDwtIG1heChhKSAtIG1pbihhKQpyYW5nbwoKcmVzdW1lbiA8LSBzdW1tYXJ5KGEpCnJlc3VtZW4KCm9yZGVuX2FzY2VuZGVudGUgPC0gc29ydChhKQpvcmRlbl9hc2NlbmRlbnRlIAoKb3JkZW5fZGVzY2VuZGVudGUgPC0gc29ydChhLCBkZWNyZWFzaW5nPVRSVUUpCm9yZGVuX2Rlc2NlbmRlbnRlCgpnIDwtIGMoMSwyLDMsNCw1KQoKc3VtYV92ZWN0b3JlcyA8LSBhK2cKc3VtYV92ZWN0b3JlcwoKIyB0aXBvcyBkZSBkYXRvcwojIGNhcmFjdGVyOiBwYWxhYnJhcywgdmFuIHNpZW1wcmUgZW50cmUgY29taWxsYXMuCiMgbnVtZXJpY29zOiBuw7ptZXJvcy4KIyBsw7NnaWNvczogVFJVRSwgRkFMU0UuCiMgRmFjdG9yZXM6IE51dmVsZXMgcHJlZXN0YWJsZWNpZG9zICIxIiwgIjAiLgojIHBhcmEgY29udmVydGlyIEVqOiBhcy5udW1lcmljCgojIGdyYWZpY2FyCnBsb3QoYSxnLCBtYWluPSAiVmVudGFzIHBvciBtZXMiLCB4bGFiID0gIm1lcyIsIHlsYWI9Ik0gVVNEIiwgdHlwZSA9ICJiIikKCiMgb3BlcmFkb3JlcyByZWxhY2lvbmFsZXMKIyBpZ3VhbCBhPT1iCiMgZGVzaWd1YWwgYSE9YgojIE1heW9yIHF1ZSBhPmIKIyBNZW5vciBxdWUgYTxiCiMgTWF5b3IgbyBpZ3VhbCBxdWUgYT49YgojIE1heW9yIG8gaWd1YWwgcXVlIGE8PWIKCiMgY29uZGljaW9uYWxlcwoKY2FsaWZpY2FjaW9uIDwtIDcxCgppZiAoY2FsaWZpY2FjaW9uPj03MCkgewogIHByaW50KCJQYXNhIikgCiAgfSBlbHNlIHsKICAgIHByaW50KCJObyBwYXNhIikKICB9CgojIFRhYmxhCnRhYmxhIDwtIGRhdGEuZnJhbWUoYSxnKQp0YWJsYQoKIyBlamVyY2ljaW8gMQojIHJlZ2lzdHJhIGVsIG5vbWJyZSwgcGVzbywgYWx0dXJhIGRlIGFsdW1ub3MsCiMgY2FsY3VsYSBzdSBJTUMgeSBhc2lnbmEgc3UgY2F0ZWdvcsOtYS4KCm5vbWJyZSA8LSBjKCJNYXJjZWxvIiwgIlNhbnRpYWdvIiwgIkthbWlsYWgiLCAiTHVpcyIsICJNZW1lIikKYWx0dXJhIDwtIGMoMS42MCwgMS44NSwgMS42NSwgMS43NSwgMS45NikKcGVzbyA8LSBjKDYwLCA4MCwgNjAsIDgwLCA1OTcpCmRmIDwtIGRhdGEuZnJhbWUobm9tYnJlLCBhbHR1cmEsIHBlc28pCmRmJElNQyA8LSBkZiRwZXNvL2RmJGFsdHVyYSoqMgpkZiRjbGFzaWZpY2FjaW9uIDwtIGlmZWxzZShkZiRJTUM8MTguNSwgIlBlc28gQmFqbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShkZiRJTUM8MjUsICJOb3JtYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGRmJElNQzwzMCwgIlNvYnJlcGVzbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGRmJElNQzwzNSwgIk9iZXNpZGFkIEdyYWRvIDEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoZGYkSU1DPDQwLCAiT2Jlc2lkYWQgR3JhZG8gMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2Jlc2lkYWQgR3JhZG8gMyIpKSkpKQoKYGBgCgo=