Instalar paquetes y llamar librerias

#install.packages("tidyverse")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Establecer variables

x <- 3
y <- 2

Imprimir 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
pontencia <- x**2
pontencia
## [1] 9
potencia_2 <- x^2
potencia_2
## [1] 9
raiz_cubica <- x**(1/3)

Funciones

raiz_cuadrada <- sqrt(x)
raiz_cuadrada
## [1] 1.732051
#?sqrt # El signo de interrogacion es para desplegar ayuda

exponencial <- exp(1)
exponencial
## [1] 2.718282
absoluto <- abs(x)
absoluto
## [1] 3
signo <- sign(x)
signo
## [1] 1
redondeo_arriba <- ceiling (x/y)
redondeo_arriba
## [1] 2
redondeo_abajo <- floor(x/y)
redondeo_abajo
## [1] 1
truncar <- trunc(x/y)
truncar
## [1] 1

Constantes

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

Vectores

a <- c(1:5) #Secuencia de enteros 1:5
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", "Carla", "Sara")
nombres
## [1] "Juan"  "Ana"   "Pedro" "Carla" "Sara"
calificaciones <- c(100,90,50,100,65)
calificaciones
## [1] 100  90  50 100  65
longitud <- length(a)
longitud 
## [1] 5
promedio <- mean(calificaciones)
promedio
## [1] 81
orden_ascendente <- sort(calificaciones)
orden_ascendente
## [1]  50  65  90 100 100
orden_descendente <- sort(calificaciones, decreasing = TRUE)
orden_descendente
## [1] 100 100  90  65  50

Tablas

tablas_de_calificaciones <- data.frame(nombres,calificaciones)
tablas_de_calificaciones$estatus <- ifelse(calificaciones>=70, "Aprobado", "Reprobado")

summary(tablas_de_calificaciones)
##    nombres          calificaciones   estatus         
##  Length:5           Min.   : 50    Length:5          
##  Class :character   1st Qu.: 65    Class :character  
##  Mode  :character   Median : 90    Mode  :character  
##                     Mean   : 81                      
##                     3rd Qu.:100                      
##                     Max.   :100
str(tablas_de_calificaciones)
## 'data.frame':    5 obs. of  3 variables:
##  $ nombres       : chr  "Juan" "Ana" "Pedro" "Carla" ...
##  $ calificaciones: num  100 90 50 100 65
##  $ estatus       : chr  "Aprobado" "Aprobado" "Reprobado" "Aprobado" ...
head(tablas_de_calificaciones) #Solo aparecen los primeros 6 por default
##   nombres calificaciones   estatus
## 1    Juan            100  Aprobado
## 2     Ana             90  Aprobado
## 3   Pedro             50 Reprobado
## 4   Carla            100  Aprobado
## 5    Sara             65 Reprobado
tail(tablas_de_calificaciones) #Solo los ultimos 6 
##   nombres calificaciones   estatus
## 1    Juan            100  Aprobado
## 2     Ana             90  Aprobado
## 3   Pedro             50 Reprobado
## 4   Carla            100  Aprobado
## 5    Sara             65 Reprobado

Select y Filter

# SELECT para seleccionar columnas

resultados <- select(tablas_de_calificaciones, -c(nombres))

# FILTER para filtrar renglones
resultados <- filter(resultados, estatus == "Aprobado")

Actividad 1. Calculadora del IMC

alumno <- c("Raúl", "Renata", "Juan", "Sergio", "Meme")
alumno
## [1] "Raúl"   "Renata" "Juan"   "Sergio" "Meme"
peso <- c(78,52,78,90,500)
peso
## [1]  78  52  78  90 500
altura <- c(1.80, 1.55,1.75,1.86,1.80)
altura
## [1] 1.80 1.55 1.75 1.86 1.80
tabla_de_IMC <- data.frame(alumno,peso,altura)
tabla_de_IMC$IMC <- tabla_de_IMC$peso/tabla_de_IMC$altura**2

tabla_de_IMC$Clasificacion <- ifelse(tabla_de_IMC$IMC < 18.5, "Bajo Peso", ifelse(tabla_de_IMC$IMC <=24.9, "Peso Normal", ifelse(tabla_de_IMC$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)")

datos_ventas <- data.frame(semana,ventas)
regresion <- lm(ventas ~ semana, data = datos_ventas)
summary(regresion)
## 
## Call:
## lm(formula = ventas ~ semana, data = datos_ventas)
## 
## 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

Preducciones

datos_nuevos <- data.frame(semana=11:20)
prediccion <- predict(regresion, datos_nuevos)
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 programacion útil para realizar cálculos principalmente estadisticos, y forma parte de las herrameitnas del Big Data

RStudio es el entorno donde se puede programar R, y gracia a que también aqui se puede programar Phython, hace unos años se anuncio que su nombre sera Posit

En esta instroduccion, lo que llama la ateción es quela constante aparacion de alertar o errores en el programa, los cuales encontramos pirnicipalmente se deben a que la version no es la más reciente, a la falta de paquetes o llamar a las librerias, problemas de escritura (typos) y los muchos argumentos que tienen las funciones-

Si desde un inicio programos de forma estructurada, disciplinada y meticuloso, podremos reveer muchas de las aleras o errores y asi obtendremos los muchos beneficios de la programación en R, como la prediccion de pronósticos.

LS0tDQp0aXRsZTogIkNvbWFuZG9zIELDoXNpY29zIg0KYXV0aG9yOiAiSnVsaW8gQ8Opc2FyIFNpbHZhIGRlIGxhIFJvc2EgQTAwODM5MTQ3Ig0KZGF0ZTogIjIwMjUtMDMtMTgiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50OiANCiAgICB0b2M6IFRSVUUNCiAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQogICAgdGhlbWU6ICJmbGF0bHkiDQotLS0NCg0KIVtdKGh0dHBzOi8vd3d3LmVkdWNhY2lvbnRyZXNwdW50b2Nlcm8uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE5LzA2L2hvbWVyLmdpZikNCg0KIyBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXJpYXMNCmBgYHtyfQ0KI2luc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmBgYA0KDQojIEVzdGFibGVjZXIgdmFyaWFibGVzDQpgYGB7cn0NCnggPC0gMw0KeSA8LSAyDQpgYGANCg0KIyBJbXByaW1pciByZXN1bHRhZG8NCmBgYHtyfQ0KeA0KeQ0KYGBgDQoNCiMgT3BlcmFjaW9uZXMgQXJpdG1ldGljYXMNCmBgYHtyfQ0Kc3VtYSA8LSB4ICsgeQ0Kc3VtYQ0KDQpyZXN0YSA8LSB4IC0geQ0KcmVzdGENCg0KbXVsdGlwbGljYWNpb24gPC0geCp5DQptdWx0aXBsaWNhY2lvbg0KDQpkaXZpc2lvbiA8LSB4L3kNCmRpdmlzaW9uIA0KDQpkaXZpc2lvbl9lbnRlcmEgPC0geCUvJXkNCmRpdmlzaW9uX2VudGVyYQ0KDQpyZXNpZHVvIDwteCUleQ0KcmVzaWR1bw0KDQpwb250ZW5jaWEgPC0geCoqMg0KcG9udGVuY2lhDQoNCnBvdGVuY2lhXzIgPC0geF4yDQpwb3RlbmNpYV8yDQoNCnJhaXpfY3ViaWNhIDwtIHgqKigxLzMpDQpgYGANCg0KIyBGdW5jaW9uZXMNCmBgYHtyfQ0KcmFpel9jdWFkcmFkYSA8LSBzcXJ0KHgpDQpyYWl6X2N1YWRyYWRhDQoNCiM/c3FydCAjIEVsIHNpZ25vIGRlIGludGVycm9nYWNpb24gZXMgcGFyYSBkZXNwbGVnYXIgYXl1ZGENCg0KZXhwb25lbmNpYWwgPC0gZXhwKDEpDQpleHBvbmVuY2lhbA0KDQphYnNvbHV0byA8LSBhYnMoeCkNCmFic29sdXRvDQoNCnNpZ25vIDwtIHNpZ24oeCkNCnNpZ25vDQoNCnJlZG9uZGVvX2FycmliYSA8LSBjZWlsaW5nICh4L3kpDQpyZWRvbmRlb19hcnJpYmENCg0KcmVkb25kZW9fYWJham8gPC0gZmxvb3IoeC95KQ0KcmVkb25kZW9fYWJham8NCg0KdHJ1bmNhciA8LSB0cnVuYyh4L3kpDQp0cnVuY2FyDQpgYGANCg0KIyBDb25zdGFudGVzDQpgYGB7cn0NCnBpDQpyYWRpbyA8LTUNCmFyZWFfY2lyY3VsbyA8LSBwaSpyYWRpbyoqMg0KYXJlYV9jaXJjdWxvDQpgYGANCg0KIyBWZWN0b3Jlcw0KYGBge3J9DQphIDwtIGMoMTo1KSAjU2VjdWVuY2lhIGRlIGVudGVyb3MgMTo1DQphDQoNCmIgPC0gc2VxKDEsMTAsIGJ5ID0gMC41KQ0KYg0KDQpub21icmVzIDwtIGMoIkp1YW4iLCAiQW5hIiwgIlBlZHJvIiwgIkNhcmxhIiwgIlNhcmEiKQ0Kbm9tYnJlcw0KDQpjYWxpZmljYWNpb25lcyA8LSBjKDEwMCw5MCw1MCwxMDAsNjUpDQpjYWxpZmljYWNpb25lcw0KDQpsb25naXR1ZCA8LSBsZW5ndGgoYSkNCmxvbmdpdHVkIA0KDQpwcm9tZWRpbyA8LSBtZWFuKGNhbGlmaWNhY2lvbmVzKQ0KcHJvbWVkaW8NCm9yZGVuX2FzY2VuZGVudGUgPC0gc29ydChjYWxpZmljYWNpb25lcykNCm9yZGVuX2FzY2VuZGVudGUNCg0Kb3JkZW5fZGVzY2VuZGVudGUgPC0gc29ydChjYWxpZmljYWNpb25lcywgZGVjcmVhc2luZyA9IFRSVUUpDQpvcmRlbl9kZXNjZW5kZW50ZQ0KYGBgDQoNCiMgVGFibGFzDQpgYGB7cn0NCnRhYmxhc19kZV9jYWxpZmljYWNpb25lcyA8LSBkYXRhLmZyYW1lKG5vbWJyZXMsY2FsaWZpY2FjaW9uZXMpDQp0YWJsYXNfZGVfY2FsaWZpY2FjaW9uZXMkZXN0YXR1cyA8LSBpZmVsc2UoY2FsaWZpY2FjaW9uZXM+PTcwLCAiQXByb2JhZG8iLCAiUmVwcm9iYWRvIikNCg0Kc3VtbWFyeSh0YWJsYXNfZGVfY2FsaWZpY2FjaW9uZXMpDQpzdHIodGFibGFzX2RlX2NhbGlmaWNhY2lvbmVzKQ0KaGVhZCh0YWJsYXNfZGVfY2FsaWZpY2FjaW9uZXMpICNTb2xvIGFwYXJlY2VuIGxvcyBwcmltZXJvcyA2IHBvciBkZWZhdWx0DQp0YWlsKHRhYmxhc19kZV9jYWxpZmljYWNpb25lcykgI1NvbG8gbG9zIHVsdGltb3MgNiANCmBgYA0KDQojIFNlbGVjdCB5IEZpbHRlcg0KYGBge3J9DQojIFNFTEVDVCBwYXJhIHNlbGVjY2lvbmFyIGNvbHVtbmFzDQoNCnJlc3VsdGFkb3MgPC0gc2VsZWN0KHRhYmxhc19kZV9jYWxpZmljYWNpb25lcywgLWMobm9tYnJlcykpDQoNCiMgRklMVEVSIHBhcmEgZmlsdHJhciByZW5nbG9uZXMNCnJlc3VsdGFkb3MgPC0gZmlsdGVyKHJlc3VsdGFkb3MsIGVzdGF0dXMgPT0gIkFwcm9iYWRvIikNCmBgYA0KDQojIEFjdGl2aWRhZCAxLiBDYWxjdWxhZG9yYSBkZWwgSU1DDQpgYGB7cn0NCmFsdW1ubyA8LSBjKCJSYcO6bCIsICJSZW5hdGEiLCAiSnVhbiIsICJTZXJnaW8iLCAiTWVtZSIpDQphbHVtbm8NCnBlc28gPC0gYyg3OCw1Miw3OCw5MCw1MDApDQpwZXNvDQphbHR1cmEgPC0gYygxLjgwLCAxLjU1LDEuNzUsMS44NiwxLjgwKQ0KYWx0dXJhDQoNCnRhYmxhX2RlX0lNQyA8LSBkYXRhLmZyYW1lKGFsdW1ubyxwZXNvLGFsdHVyYSkNCnRhYmxhX2RlX0lNQyRJTUMgPC0gdGFibGFfZGVfSU1DJHBlc28vdGFibGFfZGVfSU1DJGFsdHVyYSoqMg0KDQp0YWJsYV9kZV9JTUMkQ2xhc2lmaWNhY2lvbiA8LSBpZmVsc2UodGFibGFfZGVfSU1DJElNQyA8IDE4LjUsICJCYWpvIFBlc28iLCBpZmVsc2UodGFibGFfZGVfSU1DJElNQyA8PTI0LjksICJQZXNvIE5vcm1hbCIsIGlmZWxzZSh0YWJsYV9kZV9JTUMkSU1DIDw9IDI5LjksICJTb2JyZSBQZXNvIiwgIk9iZXNpZGFkIikpKQ0KYGBgDQoNCiMgR3LDoWZpY2FzDQpgYGB7cn0NCnNlbWFuYSA8LSBjKDE6MTApDQp2ZW50YXMgPC0gYygxNTAsMTYwLDE2NSwxODAsMTc1LDE5MCwyMDAsMTk1LDIxMCwyMjApDQpwbG90KHNlbWFuYSx2ZW50YXMsIHR5cGUgPSAiYiIsIG1haW4gPSJWZW50YXMgU2VtYW5hbGVzIChLIFVTRCkiKQ0KZGF0b3NfdmVudGFzIDwtIGRhdGEuZnJhbWUoc2VtYW5hLHZlbnRhcykNCnJlZ3Jlc2lvbiA8LSBsbSh2ZW50YXMgfiBzZW1hbmEsIGRhdGEgPSBkYXRvc192ZW50YXMpDQpzdW1tYXJ5KHJlZ3Jlc2lvbikNCmBgYA0KDQojIFByZWR1Y2Npb25lcw0KYGBge3J9DQpkYXRvc19udWV2b3MgPC0gZGF0YS5mcmFtZShzZW1hbmE9MTE6MjApDQpwcmVkaWNjaW9uIDwtIHByZWRpY3QocmVncmVzaW9uLCBkYXRvc19udWV2b3MpDQpwcmVkaWNjaW9uDQpgYGANCg0KDQojIENvbmNsdXNpb25lcw0KKipSKiogRXMgdW4gbGVuZ3VhamUgZGUgcHJvZ3JhbWFjaW9uIMO6dGlsIHBhcmEgcmVhbGl6YXIgY8OhbGN1bG9zIHByaW5jaXBhbG1lbnRlIGVzdGFkaXN0aWNvcywgeSBmb3JtYSBwYXJ0ZSBkZSBsYXMgaGVycmFtZWl0bmFzIGRlbCAqQmlnIERhdGEqDQoNCipSU3R1ZGlvKiBlcyBlbCBlbnRvcm5vIGRvbmRlIHNlIHB1ZWRlIHByb2dyYW1hciAqUiosIHkgZ3JhY2lhIGEgcXVlIHRhbWJpw6luIGFxdWkgc2UgcHVlZGUgcHJvZ3JhbWFyICpQaHl0aG9uKiwgaGFjZSB1bm9zIGHDsW9zIHNlIGFudW5jaW8gcXVlIHN1IG5vbWJyZSBzZXJhICpQb3NpdCogDQoNCkVuIGVzdGEgaW5zdHJvZHVjY2lvbiwgbG8gcXVlIGxsYW1hIGxhIGF0ZWNpw7NuIGVzIHF1ZWxhIGNvbnN0YW50ZSBhcGFyYWNpb24gZGUgYWxlcnRhciBvIGVycm9yZXMgZW4gZWwgcHJvZ3JhbWEsIGxvcyBjdWFsZXMgZW5jb250cmFtb3MgcGlybmljaXBhbG1lbnRlIHNlIGRlYmVuIGEgcXVlIGxhIHZlcnNpb24gbm8gZXMgbGEgbcOhcyByZWNpZW50ZSwgYSBsYSBmYWx0YSBkZSBwYXF1ZXRlcyBvIGxsYW1hciBhIGxhcyBsaWJyZXJpYXMsIHByb2JsZW1hcyBkZSBlc2NyaXR1cmEgKCp0eXBvcyopIHkgbG9zIG11Y2hvcyBhcmd1bWVudG9zIHF1ZSB0aWVuZW4gbGFzIGZ1bmNpb25lcy0NCg0KU2kgZGVzZGUgdW4gaW5pY2lvIHByb2dyYW1vcyBkZSBmb3JtYSBlc3RydWN0dXJhZGEsIGRpc2NpcGxpbmFkYSB5IG1ldGljdWxvc28sIHBvZHJlbW9zIHJldmVlciBtdWNoYXMgZGUgbGFzIGFsZXJhcyBvIGVycm9yZXMgeSBhc2kgb2J0ZW5kcmVtb3MgbG9zIG11Y2hvcyBiZW5lZmljaW9zIGRlIGxhIHByb2dyYW1hY2nDs24gZW4gKlIqLCBjb21vIGxhIHByZWRpY2Npb24gZGUgcHJvbsOzc3RpY29zLg0K