Instalar paquetes y llamar librerías

# install.packages("tidyverse") # Paquete para manipulación de datos
 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

Asignar una variable

 x <- 3
 y <- 2

Imprimir el resultado

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

Funciones

 raiz_cuadrada <- sqrt (x)
 raiz_cuadrada 
## [1] 1.732051
 #?sqrt # El signo de interrogación 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,2,3,4,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)
 orden_descendente
## [1]  50  65  90 100 100

Tablas

tabla_de_calificaciones <- data.frame(nombres, calificaciones)
 tabla_de_calificaciones$estatus <- ifelse(tabla_de_calificaciones$calificaciones>=70, "Aprobado", "Reprobado")
 
 #Condionales: Igual ==, Desigual !=, Mayor que >, Menor que < , 
 #Mayor o igual que >=, Menor o igual que <=
 
 summary(tabla_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(tabla_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(tabla_de_calificaciones) #6 por Defalult
##   nombres calificaciones   estatus
## 1    Juan            100  Aprobado
## 2     Ana             90  Aprobado
## 3   Pedro             50 Reprobado
## 4   Carla            100  Aprobado
## 5    Sara             65 Reprobado
 tail(tabla_de_calificaciones)
##   nombres calificaciones   estatus
## 1    Juan            100  Aprobado
## 2     Ana             90  Aprobado
## 3   Pedro             50 Reprobado
## 4   Carla            100  Aprobado
## 5    Sara             65 Reprobado

Actividad 1. Calculadora del IMC7

alumno <- c("Raúl", "Renata", "Juan", "Sergio", "Meme")
peso <- c(78, 52, 78, 90, 560)
altura <- c(1.80, 1.55, 1.75, 1.86, 1.80)

Calcular el IMC

imc <- peso / (altura^2)

Crear un data frame con los resultados

datos_imc <- data.frame(Alumno = alumno, Peso_kg = peso, Altura_m = altura, IMC = imc)
datos_imc$IMC <- ifelse(datos_imc$IMC < 18.5, "Bajo peso", 
                        ifelse(datos_imc$IMC <=24.9, "Peso Normal", 
                               ifelse(datos_imc$IMC <= 29.9, "Sobrepeso",
                                      "Obesidad")))
# Mostrar la tabla
print(datos_imc)
##   Alumno Peso_kg Altura_m         IMC
## 1   Raúl      78     1.80 Peso Normal
## 2 Renata      52     1.55 Peso Normal
## 3   Juan      78     1.75   Sobrepeso
## 4 Sergio      90     1.86   Sobrepeso
## 5   Meme     560     1.80    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
 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 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 Phyton, hace unos años se anunció que su nombre será Posit.

En esta introducción, lo que llama la atención es la constante aparición de alertas o errores en el programa, los cuáles encontramos que prinicalmente se deben a 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 programas de forma estructurada , disciplinada y metícula, podremos proveer muchas de las alertas o errores y así obtendremos los muchos beneficios de la programación de pronósticos.

LS0tDQp0aXRsZTogIkNvbWFuZG9zIELDoXNpY29zIg0KYXV0aG9yOiAiQWJpZ2FpbCBNb3JhIg0KZGF0ZTogIjIwMjUtMDMtMTgiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KICAgIHRoZW1lOiAiY29zbW8iDQotLS0NCg0KIVtdKGh0dHBzOi8vd3d3LmVkdWNhY2lvbnRyZXNwdW50b2Nlcm8uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE5LzA2L2hvbWVyLmdpZikNCg0KIyBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXLDrWFzDQpgYGB7ciBtZXNzYWdlPVRSVUUsIHdhcm5pbmc9VFJVRX0NCiMgaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikgIyBQYXF1ZXRlIHBhcmEgbWFuaXB1bGFjacOzbiBkZSBkYXRvcw0KIGxpYnJhcnkodGlkeXZlcnNlKQ0KYGBgDQoNCiMgQXNpZ25hciB1bmEgdmFyaWFibGUNCmBgYHtyfQ0KIHggPC0gMw0KIHkgPC0gMg0KDQpgYGANCg0KIyBJbXByaW1pciBlbCByZXN1bHRhZG8gDQpgYGB7cn0NCiB4DQogeQ0KYGBgDQoNCiMgT3BlcmFjaW9uZXMgYXJpdG3DqXRpY2FzDQpgYGB7cn0NCiBzdW1hIDwtIHggKyB5DQogc3VtYQ0KIA0KIHJlc3RhIDwtIHggLSB5DQogcmVzdGENCiANCiBtdWx0aXBsaWNhY2lvbiA8LXgqeQ0KIG11bHRpcGxpY2FjaW9uDQogDQogZGl2aXNpb24gPC0geC95DQogZGl2aXNpb24NCiANCiBkaXZpc2lvbl9lbnRlcmEgPC0geCAlLyUgeQ0KIGRpdmlzaW9uX2VudGVyYQ0KIA0KIHJlc2lkdW8gPC0geCAlJSB5DQogcmVzaWR1bw0KIA0KIHBvdGVuY2lhIDwtIHggKiogMg0KIHBvdGVuY2lhDQogDQogcG90ZW5jaWFfMiA8LSB4IF4gMg0KIHBvdGVuY2lhXzINCiANCiByYWl6X2N1YmljYSA8LSB4ICoqICgxLzMpDQogcmFpel9jdWJpY2ENCmBgYA0KDQojIEZ1bmNpb25lcw0KYGBge3J9DQogcmFpel9jdWFkcmFkYSA8LSBzcXJ0ICh4KQ0KIHJhaXpfY3VhZHJhZGEgDQogDQogIz9zcXJ0ICMgRWwgc2lnbm8gZGUgaW50ZXJyb2dhY2nDs24gZXMgcGFyYSBkZXNwbGVnYXIgYXl1ZGENCiANCiBleHBvbmVuY2lhbCA8LWV4cCAoMSkNCiBleHBvbmVuY2lhbA0KDQogYWJzb2x1dG8gPC0gYWJzICh4KQ0KIGFic29sdXRvDQogDQogc2lnbm8gPC0gc2lnbih4KQ0KIHNpZ25vIA0KIA0KIHJlZG9uZGVvX2FycmliYSA8LSBjZWlsaW5nICh4L3kpDQogcmVkb25kZW9fYXJyaWJhDQogDQogcmVkb25kZW9fYWJham8gPC0gZmxvb3IoeC95KQ0KIHJlZG9uZGVvX2FiYWpvDQogDQogdHJ1bmNhciA8LSB0cnVuYyh4L3kpDQogdHJ1bmNhcg0KYGBgDQoNCiMgQ29uc3RhbnRlcw0KYGBge3J9DQogcGkNCiByYWRpbyA8LSA1DQogYXJlYV9jaXJjdWxvIDwtIHBpKnJhZGlvKioyDQogYXJlYV9jaXJjdWxvDQpgYGANCiMgVmVjdG9yZXMNCmBgYHtyfQ0KYSA8LSBjKDEsMiwzLDQsNSkgI1NlY3VlbmNpYSBkZSBlbnRlcm9zIDE6NQ0KIGENCiANCiBiIDwtIHNlcSgxLDEwLCBieSA9IDAuNSkNCiBiDQoNCiBub21icmVzIDwtIGMoIkp1YW4iLCAiQW5hIiwgIlBlZHJvIiwgIkNhcmxhIiwgIlNhcmEiKQ0KIG5vbWJyZXMNCiANCiBjYWxpZmljYWNpb25lcyA8LSBjKDEwMCwgOTAsIDUwLCAxMDAsIDY1KQ0KIGNhbGlmaWNhY2lvbmVzDQoNCiBsb25naXR1ZCA8LSBsZW5ndGggKGEpDQogbG9uZ2l0dWQNCiANCiBwcm9tZWRpbyA8LSBtZWFuKGNhbGlmaWNhY2lvbmVzKQ0KIHByb21lZGlvDQogDQogb3JkZW5fYXNjZW5kZW50ZSA8LSBzb3J0KGNhbGlmaWNhY2lvbmVzKQ0KIG9yZGVuX2FzY2VuZGVudGUNCiANCiBvcmRlbl9kZXNjZW5kZW50ZSA8LSBzb3J0KGNhbGlmaWNhY2lvbmVzKQ0KIG9yZGVuX2Rlc2NlbmRlbnRlDQogDQpgYGANCiMgVGFibGFzDQpgYGB7cn0NCnRhYmxhX2RlX2NhbGlmaWNhY2lvbmVzIDwtIGRhdGEuZnJhbWUobm9tYnJlcywgY2FsaWZpY2FjaW9uZXMpDQogdGFibGFfZGVfY2FsaWZpY2FjaW9uZXMkZXN0YXR1cyA8LSBpZmVsc2UodGFibGFfZGVfY2FsaWZpY2FjaW9uZXMkY2FsaWZpY2FjaW9uZXM+PTcwLCAiQXByb2JhZG8iLCAiUmVwcm9iYWRvIikNCiANCiAjQ29uZGlvbmFsZXM6IElndWFsID09LCBEZXNpZ3VhbCAhPSwgTWF5b3IgcXVlID4sIE1lbm9yIHF1ZSA8ICwgDQogI01heW9yIG8gaWd1YWwgcXVlID49LCBNZW5vciBvIGlndWFsIHF1ZSA8PQ0KIA0KIHN1bW1hcnkodGFibGFfZGVfY2FsaWZpY2FjaW9uZXMpIA0KIHN0cih0YWJsYV9kZV9jYWxpZmljYWNpb25lcykgDQogaGVhZCh0YWJsYV9kZV9jYWxpZmljYWNpb25lcykgIzYgcG9yIERlZmFsdWx0DQogdGFpbCh0YWJsYV9kZV9jYWxpZmljYWNpb25lcykNCg0KYGBgDQojIEFjdGl2aWRhZCAxLiBDYWxjdWxhZG9yYSBkZWwgSU1DNw0KYGBge3J9DQphbHVtbm8gPC0gYygiUmHDumwiLCAiUmVuYXRhIiwgIkp1YW4iLCAiU2VyZ2lvIiwgIk1lbWUiKQ0KcGVzbyA8LSBjKDc4LCA1MiwgNzgsIDkwLCA1NjApDQphbHR1cmEgPC0gYygxLjgwLCAxLjU1LCAxLjc1LCAxLjg2LCAxLjgwKQ0KYGBgDQoNCiMgQ2FsY3VsYXIgZWwgSU1DDQpgYGB7cn0NCmltYyA8LSBwZXNvIC8gKGFsdHVyYV4yKQ0KYGBgDQoNCiMgQ3JlYXIgdW4gZGF0YSBmcmFtZSBjb24gbG9zIHJlc3VsdGFkb3MNCmBgYHtyfQ0KZGF0b3NfaW1jIDwtIGRhdGEuZnJhbWUoQWx1bW5vID0gYWx1bW5vLCBQZXNvX2tnID0gcGVzbywgQWx0dXJhX20gPSBhbHR1cmEsIElNQyA9IGltYykNCmRhdG9zX2ltYyRJTUMgPC0gaWZlbHNlKGRhdG9zX2ltYyRJTUMgPCAxOC41LCAiQmFqbyBwZXNvIiwgDQogICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoZGF0b3NfaW1jJElNQyA8PTI0LjksICJQZXNvIE5vcm1hbCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShkYXRvc19pbWMkSU1DIDw9IDI5LjksICJTb2JyZXBlc28iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2Jlc2lkYWQiKSkpDQojIE1vc3RyYXIgbGEgdGFibGENCnByaW50KGRhdG9zX2ltYykNCg0KYGBgDQojIEdyw6FmaWNhcw0KYGBge3J9DQpTZW1hbmEgPC0gYygxOjEwKQ0KIFZlbnRhcyA8LSBjKDE1MCwgMTYwLCAxNjUsIDE4MCwgMTc1LCAxOTAsIDIwMCwgMTk1LCAyMTAsIDIyMCkNCiBwbG90KFNlbWFuYSwgVmVudGFzLCB0eXBlPSJiIiwgbWFpbj0iVmVudGFzIFNlbWFuYWxlcyAoSyBVU0QpIikNCiAgZGF0b3NfdmVudGFzIDwtIGRhdGEuZnJhbWUoU2VtYW5hLCBWZW50YXMpDQogIHJlZ3Jlc2lvbiA8LWxtKFZlbnRhcyB+IFNlbWFuYSwgZGF0YT1kYXRvc192ZW50YXMpDQogIHN1bW1hcnkocmVncmVzaW9uKQ0KIGRhdG9zX251ZXZvcyA8LSBkYXRhLmZyYW1lIChTZW1hbmEgPTExOjIwKQ0KIHByZWRpY2Npb24gPC0gcHJlZGljdChyZWdyZXNpb24sIGRhdG9zX251ZXZvcykNCiBwcmVkaWNjaW9uIA0KIA0KYGBgDQojIENvbmNsdXNpb25lcw0KKipSKiogZXMgdW4gbGVuZ3VhamUgZGUgcHJvZ3JhbWFjacOzbiDDunRpbCBwYXJhIHJlYWxpemFyIGPDoWxjdWxvcywgcHJpbmNpcGFsbWVudGUgZXN0YWTDrXN0aWNvcywgeSBmb3JtYSBwYXJ0ZSBkZSBsYXMgaGVycmFtaWVudGFzIGRlbCAqQmlnIERhdGEqLg0KDQoqUlN0dWRpbyogZXMgZWwgZW50b3JubyBkb25kZSBzZSBwdWVkZSBwcm9ncmFtYXIgKlIqIHkgZ3JhY2lhcyBhIHF1ZSB0YW1iacOpbiBhcXXDrSBzZSBwdWVkZSBwcm9ncmFtYXIgKlBoeXRvbiosIGhhY2UgdW5vcyBhw7FvcyBzZSBhbnVuY2nDsyBxdWUgc3Ugbm9tYnJlIHNlcsOhICpQb3NpdCouIA0KDQpFbiBlc3RhIGludHJvZHVjY2nDs24sIGxvIHF1ZSBsbGFtYSBsYSBhdGVuY2nDs24gZXMgbGEgY29uc3RhbnRlIGFwYXJpY2nDs24gZGUgYWxlcnRhcyBvIGVycm9yZXMgZW4gZWwgcHJvZ3JhbWEsIGxvcyBjdcOhbGVzIGVuY29udHJhbW9zIHF1ZSBwcmluaWNhbG1lbnRlIHNlIGRlYmVuIGEgbGEgdmVyc2nDs24gbm8gZXMgbGEgbcOhcyByZWNpZW50ZSwgYSBsYSBmYWx0YSBkZSBpbnN0YWxhY2nDs24gZGUgcGFxdWV0ZXMgbyBsbGFtYXIgYSBsYXMgbGlicmVyw61hcywgcHJvYmxlbWFzIGRlIGVzY3JpdHVyYSAoKnR5cG9zKikgeSBsb3MgbXVjaG9zIGFyZ3VtZW50b3MgcXVlIHRpZW5lbiBsYXMgZnVuY2lvbmVzLiANCg0KU2kgZGVzZGUgdW4gaW5pY2lvIHByb2dyYW1hcyBkZSBmb3JtYSBlc3RydWN0dXJhZGEgLCBkaXNjaXBsaW5hZGEgeSBtZXTDrWN1bGEsIHBvZHJlbW9zIHByb3ZlZXIgbXVjaGFzIGRlIGxhcyBhbGVydGFzIG8gZXJyb3JlcyB5IGFzw60gb2J0ZW5kcmVtb3MgbG9zIG11Y2hvcyBiZW5lZmljaW9zIGRlIGxhIHByb2dyYW1hY2nDs24gZGUgcHJvbsOzc3RpY29zLg0KDQoNCg0KIA0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=