Comandos Básicos

Asignación de variables

x <- 3
y <- 2

Impresión de resultados

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

Operaciones 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
## [1] 1
residuo <- x %% y
residuo
## [1] 1
potencia <- x^2   # también 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(-3)
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, de .5 en .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 2 2 2
f <- c("pera", "manzana", "kiwi", "fresa")
f
## [1] "pera"    "manzana" "kiwi"    "fresa"

Funciones sobre vectores

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

Operaciones entre vectores

g <- c(1, 2, 3, 4, 5)
suma_vectores <- a + g
suma_vectores
## [1]  2  4  6  8 10

Tipos de Datos

  • Carácter: palabras, van siempre entre comillas.
  • Numéricos: números.
  • Lógicos: TRUE, FALSE.
  • Factores: niveles preestablecidos, ej. "1", "0".

Para convertir se usan funciones tipo as.numeric(), as.character(), as.factor().

Graficar

plot(a, g, main = "Ventas por mes", xlab = "Mes", ylab = "M USD")

Operadores Relacionales

Operador Significado
a == b Igual a
a != b Desigual a
a > b Mayor que
a < b Menor que
a >= b Mayor o igual que
a <= b Menor o igual que

Condicionales

if (x >= 70) {
  print("Pasa")
} else {
  print("No pasa")
}
## [1] "No 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 y altura de los compañeros, calcula su IMC y asigna su categoría.

nombre <- c("Marcelo", "Luis", "Santiago", "Kamilah")
altura <- c(1.76, 1.84, 1.70, 1.77)
peso   <- c(64, 80, 85, 57)

df <- data.frame(nombre, altura, peso)
df$IMC <- round(df$peso / df$altura**2, 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")))))
df
##     nombre altura peso   IMC clasificacion
## 1  Marcelo   1.76   64 20.66        Normal
## 2     Luis   1.84   80 23.63        Normal
## 3 Santiago   1.70   85 29.41     Sobrepeso
## 4  Kamilah   1.77   57 18.19     Peso Bajo