Instalar paquetes y llamar librerías

# install.packages("tidyverse")
library(tidyverse)

Asignar una variable

x <- 3
y <- 2

Imprimir el resultado

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

Operaciones aritmeticas

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 ** y
potencia
## [1] 9
raizcubica <- x ** (1/3)
raizcubica
## [1] 1.44225

Funciones

raizcuadrada <- sqrt(x)
raizcuadrada
## [1] 1.732051
# ?sqrt (signo ? es para ayuda)

exponencial <- exp(1)
exponencial
## [1] 2.718282
valorabsoluto <- abs(x)
valorabsoluto
## [1] 3
signo <- sign(x)
signo
## [1] 1
redondeoarriba <- ceiling(x/y)
redondeoarriba
## [1] 2
redondeoabajo <- floor(x/y)
redondeoabajo
## [1] 1
truncar <- trunc(x/y)
truncar
## [1] 1

Constantes

pi 
## [1] 3.141593
radio <- 5
areacirculo <- pi*radio**2
areacirculo
## [1] 78.53982

Vectores

a <- c(1,2,3,4,5) 
a
## [1] 1 2 3 4 5
a <- c(1:5) #secuencia de enteros
a
## [1] 1 2 3 4 5
b <- seq(1,10, by = 0.5)
b
##  [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  7.0  7.5  8.0
## [16]  8.5  9.0  9.5 10.0
nombres <- c("juan", "ana", "pedro")
nombres
## [1] "juan"  "ana"   "pedro"
calif <- c(100,90,50)
calif
## [1] 100  90  50
longitud <- length(a)
longitud
## [1] 5
promedio <- mean(calif)
promedio
## [1] 80
ordenascendente <- sort(calif)
ordenascendente
## [1]  50  90 100
ordendescendente <- sort(calif, decreasing = TRUE)
ordendescendente
## [1] 100  90  50

Tablas

tablacalif <- data.frame (nombres,calif)

tablacalif$estatus <- ifelse(tablacalif$calif >=70, "aprobado", "reprobado")
# condicionales: igual ==, desigual !=, mayor que>, menor que <, >=, <=

summary(tablacalif)
##    nombres              calif       estatus         
##  Length:3           Min.   : 50   Length:3          
##  Class :character   1st Qu.: 70   Class :character  
##  Mode  :character   Median : 90   Mode  :character  
##                     Mean   : 80                     
##                     3rd Qu.: 95                     
##                     Max.   :100
str(tablacalif)
## 'data.frame':    3 obs. of  3 variables:
##  $ nombres: chr  "juan" "ana" "pedro"
##  $ calif  : num  100 90 50
##  $ estatus: chr  "aprobado" "aprobado" "reprobado"
head(tablacalif) # solo se ven los primeros 6 rengoles
##   nombres calif   estatus
## 1    juan   100  aprobado
## 2     ana    90  aprobado
## 3   pedro    50 reprobado
tail(tablacalif) # solo se ven los ultimos 6 rengoles
##   nombres calif   estatus
## 1    juan   100  aprobado
## 2     ana    90  aprobado
## 3   pedro    50 reprobado
# SELECT para seleccionar columnas

resultados <- select(tablacalif, -c(nombres))
resultados
##   calif   estatus
## 1   100  aprobado
## 2    90  aprobado
## 3    50 reprobado
# filter filtrar rengoles

resultados <- filter(resultados, estatus == "aprobado")

Actividad 1. Calculadora del IMC

alumno <- c("Natalia", "Paulina")
peso <- c(64, 53)
altura <- c(1.68, 1.55)

tablaIMC <- data.frame (alumno, peso, altura)

tablaIMC$IMC <- tablaIMC$peso/altura**2

tablaIMC$resultado <- ifelse(tablaIMC$IMC < 18.5, "Bajo Peso", ifelse (tablaIMC$IMC <= 24.9, "Peso Normal", ifelse (tablaIMC$IMC <= 29.9, "Sobre peso", "Obesidad")))

Gráficas

semana <- c(1:10)
ventas <- c(150,160,165,180,175,190,200,195,210,220)

plot(semana, ventas, type = "b", main="ventas semanales (K USD)")

datosventas <- data.frame(semana, ventas)
regresion <- lm(ventas ~ semana, data=datosventas)
summary(regresion)
## 
## Call:
## lm(formula = ventas ~ semana, data = datosventas)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -7.758 -1.538  0.500  2.439  6.455 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 144.3333     3.1714   45.51 6.00e-11 ***
## semana        7.3030     0.5111   14.29 5.61e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.643 on 8 degrees of freedom
## Multiple R-squared:  0.9623, Adjusted R-squared:  0.9576 
## F-statistic: 204.2 on 1 and 8 DF,  p-value: 5.614e-07
datosnuevos <- data.frame(semana = 11:20)
prediccion <- predict (regresion, datosnuevos)
prediccion
##        1        2        3        4        5        6        7        8 
## 224.6667 231.9697 239.2727 246.5758 253.8788 261.1818 268.4848 275.7879 
##        9       10 
## 283.0909 290.3939

Conclusiones

R es un lenguaje de programación útil para realizar cálculos, principalmente estadísticos, y forma parte de las herramientas del Big Data.

RStudio es el entorno donde se puede programar R, y gracias a que también aquí se puede programar Python, hace unos años se anunció que su nombre será * Postit*.

En esta introducción, lo que llama la atención es la constante aparición de alertas o errores en el programa, los cuales encontramos que principalmente se deben a que la versión no es la más reciente, a la falta de instalación de paquetes o llamar a las librerías, problemas de escritura (typos) y los muchos argumentos que tienen las funciones.

Si desde un inicio programamos de forma estructurada, disciplinada y metículosa, padremos preveer muchas de las alertas o errores y así obtendremos los muchos beneficios de la programación en R, como la prpedicción de pronósticos.

LS0tCnRpdGxlOiAiQ29tYW5kb3MgQsOhc2ljb3MiCmF1dGhvcjogIk5hdGFsaWEgQ2FtcG9zIFJ1aXogQTAwODM1NTY5IgpkYXRlOiAiMjAyNS0wMy0xOCIKb3V0cHV0OiAKICBodG1sX2RvY3VtZW50OiAKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiAgVFJVRQogICAgdGhlbWU6ICJjb3NtbyIgIAotLS0KCiFbXShodHRwczovL2Y0bC5maXQvd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDIvMi5naWYpCgojIEluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcsOtYXMKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgojIEFzaWduYXIgdW5hIHZhcmlhYmxlCmBgYHtyfQp4IDwtIDMKeSA8LSAyCmBgYAoKIyBJbXByaW1pciBlbCByZXN1bHRhZG8KYGBge3J9CngKeQpgYGAKCiMgT3BlcmFjaW9uZXMgYXJpdG1ldGljYXMKYGBge3J9CnN1bWEgPC0geCArIHkKc3VtYQoKcmVzdGEgPC0geCAtIHkKcmVzdGEKCm11bHRpcGxpY2FjaW9uIDwtIHggKiB5Cm11bHRpcGxpY2FjaW9uCgpkaXZpc2lvbiA8LSB4IC8geQpkaXZpc2lvbgoKZGl2aXNpb25fZW50ZXJhIDwtIHggJS8lIHkKZGl2aXNpb25fZW50ZXJhCgpyZXNpZHVvIDwtIHggJSUgeQpyZXNpZHVvCgpwb3RlbmNpYSA8LSB4ICoqIHkKcG90ZW5jaWEKCnJhaXpjdWJpY2EgPC0geCAqKiAoMS8zKQpyYWl6Y3ViaWNhCmBgYAoKCiMgRnVuY2lvbmVzCmBgYHtyfQpyYWl6Y3VhZHJhZGEgPC0gc3FydCh4KQpyYWl6Y3VhZHJhZGEKCiMgP3NxcnQgKHNpZ25vID8gZXMgcGFyYSBheXVkYSkKCmV4cG9uZW5jaWFsIDwtIGV4cCgxKQpleHBvbmVuY2lhbAoKdmFsb3JhYnNvbHV0byA8LSBhYnMoeCkKdmFsb3JhYnNvbHV0bwoKc2lnbm8gPC0gc2lnbih4KQpzaWdubwoKcmVkb25kZW9hcnJpYmEgPC0gY2VpbGluZyh4L3kpCnJlZG9uZGVvYXJyaWJhCgpyZWRvbmRlb2FiYWpvIDwtIGZsb29yKHgveSkKcmVkb25kZW9hYmFqbwoKdHJ1bmNhciA8LSB0cnVuYyh4L3kpCnRydW5jYXIKYGBgCgojIENvbnN0YW50ZXMKYGBge3J9CnBpIApyYWRpbyA8LSA1CmFyZWFjaXJjdWxvIDwtIHBpKnJhZGlvKioyCmFyZWFjaXJjdWxvCmBgYAoKIyBWZWN0b3JlcwpgYGB7cn0KYSA8LSBjKDEsMiwzLDQsNSkgCmEKCmEgPC0gYygxOjUpICNzZWN1ZW5jaWEgZGUgZW50ZXJvcwphCgpiIDwtIHNlcSgxLDEwLCBieSA9IDAuNSkKYgoKbm9tYnJlcyA8LSBjKCJqdWFuIiwgImFuYSIsICJwZWRybyIpCm5vbWJyZXMKCmNhbGlmIDwtIGMoMTAwLDkwLDUwKQpjYWxpZgoKbG9uZ2l0dWQgPC0gbGVuZ3RoKGEpCmxvbmdpdHVkCgpwcm9tZWRpbyA8LSBtZWFuKGNhbGlmKQpwcm9tZWRpbwoKb3JkZW5hc2NlbmRlbnRlIDwtIHNvcnQoY2FsaWYpCm9yZGVuYXNjZW5kZW50ZQoKb3JkZW5kZXNjZW5kZW50ZSA8LSBzb3J0KGNhbGlmLCBkZWNyZWFzaW5nID0gVFJVRSkKb3JkZW5kZXNjZW5kZW50ZQpgYGAKCiMgVGFibGFzCmBgYHtyfQp0YWJsYWNhbGlmIDwtIGRhdGEuZnJhbWUgKG5vbWJyZXMsY2FsaWYpCgp0YWJsYWNhbGlmJGVzdGF0dXMgPC0gaWZlbHNlKHRhYmxhY2FsaWYkY2FsaWYgPj03MCwgImFwcm9iYWRvIiwgInJlcHJvYmFkbyIpCiMgY29uZGljaW9uYWxlczogaWd1YWwgPT0sIGRlc2lndWFsICE9LCBtYXlvciBxdWU+LCBtZW5vciBxdWUgPCwgPj0sIDw9CgpzdW1tYXJ5KHRhYmxhY2FsaWYpCnN0cih0YWJsYWNhbGlmKQpoZWFkKHRhYmxhY2FsaWYpICMgc29sbyBzZSB2ZW4gbG9zIHByaW1lcm9zIDYgcmVuZ29sZXMKdGFpbCh0YWJsYWNhbGlmKSAjIHNvbG8gc2UgdmVuIGxvcyB1bHRpbW9zIDYgcmVuZ29sZXMKCiMgU0VMRUNUIHBhcmEgc2VsZWNjaW9uYXIgY29sdW1uYXMKCnJlc3VsdGFkb3MgPC0gc2VsZWN0KHRhYmxhY2FsaWYsIC1jKG5vbWJyZXMpKQpyZXN1bHRhZG9zCgojIGZpbHRlciBmaWx0cmFyIHJlbmdvbGVzCgpyZXN1bHRhZG9zIDwtIGZpbHRlcihyZXN1bHRhZG9zLCBlc3RhdHVzID09ICJhcHJvYmFkbyIpCmBgYAoKIyBBY3RpdmlkYWQgMS4gQ2FsY3VsYWRvcmEgZGVsIElNQwpgYGB7cn0KYWx1bW5vIDwtIGMoIk5hdGFsaWEiLCAiUGF1bGluYSIpCnBlc28gPC0gYyg2NCwgNTMpCmFsdHVyYSA8LSBjKDEuNjgsIDEuNTUpCgp0YWJsYUlNQyA8LSBkYXRhLmZyYW1lIChhbHVtbm8sIHBlc28sIGFsdHVyYSkKCnRhYmxhSU1DJElNQyA8LSB0YWJsYUlNQyRwZXNvL2FsdHVyYSoqMgoKdGFibGFJTUMkcmVzdWx0YWRvIDwtIGlmZWxzZSh0YWJsYUlNQyRJTUMgPCAxOC41LCAiQmFqbyBQZXNvIiwgaWZlbHNlICh0YWJsYUlNQyRJTUMgPD0gMjQuOSwgIlBlc28gTm9ybWFsIiwgaWZlbHNlICh0YWJsYUlNQyRJTUMgPD0gMjkuOSwgIlNvYnJlIHBlc28iLCAiT2Jlc2lkYWQiKSkpCmBgYAoKIyBHcsOhZmljYXMKYGBge3J9CnNlbWFuYSA8LSBjKDE6MTApCnZlbnRhcyA8LSBjKDE1MCwxNjAsMTY1LDE4MCwxNzUsMTkwLDIwMCwxOTUsMjEwLDIyMCkKCnBsb3Qoc2VtYW5hLCB2ZW50YXMsIHR5cGUgPSAiYiIsIG1haW49InZlbnRhcyBzZW1hbmFsZXMgKEsgVVNEKSIpCmRhdG9zdmVudGFzIDwtIGRhdGEuZnJhbWUoc2VtYW5hLCB2ZW50YXMpCnJlZ3Jlc2lvbiA8LSBsbSh2ZW50YXMgfiBzZW1hbmEsIGRhdGE9ZGF0b3N2ZW50YXMpCnN1bW1hcnkocmVncmVzaW9uKQpkYXRvc251ZXZvcyA8LSBkYXRhLmZyYW1lKHNlbWFuYSA9IDExOjIwKQpwcmVkaWNjaW9uIDwtIHByZWRpY3QgKHJlZ3Jlc2lvbiwgZGF0b3NudWV2b3MpCnByZWRpY2Npb24KYGBgCgoKIyBDb25jbHVzaW9uZXMKKipSKiogZXMgdW4gbGVuZ3VhamUgZGUgcHJvZ3JhbWFjacOzbiDDunRpbCBwYXJhIHJlYWxpemFyIGPDoWxjdWxvcywgcHJpbmNpcGFsbWVudGUgZXN0YWTDrXN0aWNvcywgeSBmb3JtYSBwYXJ0ZSBkZSBsYXMgaGVycmFtaWVudGFzIGRlbCAqQmlnIERhdGEqLgoKKlJTdHVkaW8qIGVzIGVsIGVudG9ybm8gZG9uZGUgc2UgcHVlZGUgcHJvZ3JhbWFyICpSKiwgeSBncmFjaWFzIGEgcXVlIHRhbWJpw6luIGFxdcOtIHNlIHB1ZWRlIHByb2dyYW1hciAqUHl0aG9uKiwgaGFjZSB1bm9zIGHDsW9zIHNlIGFudW5jacOzIHF1ZSBzdSBub21icmUgc2Vyw6EgKiBQb3N0aXQqLgoKRW4gZXN0YSBpbnRyb2R1Y2Npw7NuLCBsbyBxdWUgbGxhbWEgbGEgYXRlbmNpw7NuIGVzIGxhIGNvbnN0YW50ZSBhcGFyaWNpw7NuIGRlIGFsZXJ0YXMgbyBlcnJvcmVzIGVuIGVsIHByb2dyYW1hLCBsb3MgY3VhbGVzIGVuY29udHJhbW9zIHF1ZSBwcmluY2lwYWxtZW50ZSBzZSBkZWJlbiBhIHF1ZSBsYSB2ZXJzacOzbiBubyBlcyBsYSBtw6FzIHJlY2llbnRlLCBhIGxhIGZhbHRhIGRlIGluc3RhbGFjacOzbiBkZSBwYXF1ZXRlcyBvIGxsYW1hciBhIGxhcyBsaWJyZXLDrWFzLCBwcm9ibGVtYXMgZGUgZXNjcml0dXJhICgqdHlwb3MqKSB5IGxvcyBtdWNob3MgYXJndW1lbnRvcyBxdWUgdGllbmVuIGxhcyBmdW5jaW9uZXMuCgpTaSBkZXNkZSB1biBpbmljaW8gcHJvZ3JhbWFtb3MgZGUgZm9ybWEgZXN0cnVjdHVyYWRhLCBkaXNjaXBsaW5hZGEgeSBtZXTDrWN1bG9zYSwgcGFkcmVtb3MgcHJldmVlciBtdWNoYXMgZGUgbGFzIGFsZXJ0YXMgbyBlcnJvcmVzIHkgYXPDrSBvYnRlbmRyZW1vcyBsb3MgbXVjaG9zIGJlbmVmaWNpb3MgZGUgbGEgcHJvZ3JhbWFjacOzbiBlbiAqUiosIGNvbW8gbGEgcHJwZWRpY2Npw7NuIGRlIHByb27Ds3N0aWNvcy4KCg==