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

Asignar una variable

x <- -3
y <- 2

#Imprimir Resultado

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

Operaciones Aritmeticas

suma <- x + y
suma
## [1] -1
resta <- x - y
resta
## [1] -5
multiplicación <- x*y
multiplicación
## [1] -6
división <- x/y
división
## [1] -1.5
división_entera <- x %/% y
división_entera
## [1] -2
residuo <- x %% y
residuo
## [1] 1
potencia <- x ** y 
potencia
## [1] 9
raiz_cubica <- x ** (1/3)
raiz_cubica
## [1] NaN

Funciones

raiz_cuadrada <- sqrt(x)
## Warning in sqrt(x): Se han producido NaNs
raiz_cuadrada
## [1] NaN

?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] -1
redondeo_abajo <- floor(x/y)
redondeo_abajo
## [1] -2
truncar <- trunc(x/y)

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) #Secuancia 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

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

Condicionales: igual ==, desigual !=

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 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(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

SELECT para seleccionar columnas

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

#FILTER para filtrar renglones

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

#Actividad 1. Calculadora del IMC

alumno <- c("Javier", "Alberto", "Cesar", "Kevin")
peso <- c(90, 70, 50, 90)
altura <- c(1.80, 1.82, 1.83, 1.85)

IMC <- peso /altura ** 2
tabla_imc <- data.frame(alumno, IMC)
tabla_imc$Estado <- ifelse(tabla_imc$IMC<=25,"Peso Normal", ifelse(tabla_imc$IMC<=29.9, "Sobrepeso", "Obesidad"))

Graficas

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) 
predict(regresion, datos_nuevos)
##        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

#Concusiones

LS0tDQp0aXRsZTogIkNvbWFuZG9zIEJhc2ljb3MiDQphdXRob3I6ICJKYXZpZXIgTGVjaHVnYSBBMDE1NzE1MTMiDQpkYXRlOiAiMDMvMTgvMjUiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCiAgICB0aGVtZTogImNvc21vIg0KLS0tDQoNCiFbXSgpDQoNCiMgSW5zdGFsYXIgcGFxdWV0ZXMgeSBsbGFtYXIgbGlicmVyaWFzDQpgYGB7ciBtZXNzYWdlPVRSVUUsIHdhcm5pbmc9VFJVRX0NCiNpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKQ0KbGlicmFyeSAodGlkeXZlcnNlKQ0KYGBgDQoNCiMgQXNpZ25hciB1bmEgdmFyaWFibGUNCmBgYHtyfQ0KeCA8LSAtMw0KeSA8LSAyDQpgYGANCiNJbXByaW1pciBSZXN1bHRhZG8NCmBgYHtyfQ0KeA0KeQ0KYGBgDQoNCiMgT3BlcmFjaW9uZXMgQXJpdG1ldGljYXMNCmBgYHtyfQ0Kc3VtYSA8LSB4ICsgeQ0Kc3VtYQ0KDQpyZXN0YSA8LSB4IC0geQ0KcmVzdGENCg0KbXVsdGlwbGljYWNpw7NuIDwtIHgqeQ0KbXVsdGlwbGljYWNpw7NuDQoNCmRpdmlzacOzbiA8LSB4L3kNCmRpdmlzacOzbg0KDQpkaXZpc2nDs25fZW50ZXJhIDwtIHggJS8lIHkNCmRpdmlzacOzbl9lbnRlcmENCg0KcmVzaWR1byA8LSB4ICUlIHkNCnJlc2lkdW8NCg0KcG90ZW5jaWEgPC0geCAqKiB5IA0KcG90ZW5jaWENCg0KcmFpel9jdWJpY2EgPC0geCAqKiAoMS8zKQ0KcmFpel9jdWJpY2ENCmBgYA0KDQojIEZ1bmNpb25lcw0KYGBge3J9DQpyYWl6X2N1YWRyYWRhIDwtIHNxcnQoeCkNCnJhaXpfY3VhZHJhZGENCmBgYA0KDQo/c3FydCAjIEVsIHNpZ25vIGRlIGludGVycm9nYWNpw7NuIGVzIHBhcmEgZGVzcGxlZ2FyIGF5dWRhDQpgYGB7cn0NCmV4cG9uZW5jaWFsIDwtIGV4cCgxKQ0KZXhwb25lbmNpYWwNCg0KYWJzb2x1dG8gPC0gYWJzKHgpDQphYnNvbHV0bw0KDQpzaWdubyA8LSBzaWduKHgpDQpzaWdubw0KDQpyZWRvbmRlb19hcnJpYmEgPC0gY2VpbGluZyAoeC95KQ0KcmVkb25kZW9fYXJyaWJhDQoNCnJlZG9uZGVvX2FiYWpvIDwtIGZsb29yKHgveSkNCnJlZG9uZGVvX2FiYWpvDQoNCnRydW5jYXIgPC0gdHJ1bmMoeC95KQ0KYGBgDQoNCiMgQ29uc3RhbnRlcw0KYGBge3J9DQpwaQ0KcmFkaW8gPC0gNQ0KYXJlYV9jaXJjdWxvIDwtIHBpKnJhZGlvKioyDQphcmVhX2NpcmN1bG8NCmBgYA0KDQojIFZlY3RvcmVzDQpgYGB7cn0NCmEgPC0gYygxLDIsMyw0LDUpICNTZWN1YW5jaWEgZGUgZW50ZXJvcyAxOjUNCmENCg0KYiA8LSBzZXEoMSwxMCwgYnkgPSAwLjUpDQpiDQoNCm5vbWJyZXMgPC0gYygiSnVhbiIsICJBbmEiLCAiUGVkcm8iLCAiQ2FybGEiLCAiU2FyYSIpDQpub21icmVzDQoNCmNhbGlmaWNhY2lvbmVzIDwtIGMoMTAwLDkwLDUwLDEwMCw2NSkNCmNhbGlmaWNhY2lvbmVzDQoNCmxvbmdpdHVkIDwtIGxlbmd0aChhKQ0KbG9uZ2l0dWQNCg0KcHJvbWVkaW8gPC0gbWVhbihjYWxpZmljYWNpb25lcykNCnByb21lZGlvDQoNCm9yZGVuX2FzY2VuZGVudGUgPC0gc29ydChjYWxpZmljYWNpb25lcykNCm9yZGVuX2FzY2VuZGVudGUNCg0Kb3JkZW5fZGVzY2VuZGVudGUgPC0gc29ydChjYWxpZmljYWNpb25lcywgZGVjcmVhc2luZyA9IFRSVUUpDQpvcmRlbl9kZXNjZW5kZW50ZQ0KYGBgDQoNCiMgVGFibGFzDQpgYGB7cn0NCnRhYmxhX2RlX2NhbGlmaWNhY2lvbmVzIDwtIGRhdGEuZnJhbWUobm9tYnJlcywgY2FsaWZpY2FjaW9uZXMpDQp0YWJsYV9kZV9jYWxpZmljYWNpb25lcyRlc3RhdHVzIDwtIGlmZWxzZSh0YWJsYV9kZV9jYWxpZmljYWNpb25lcyRjYWxpZmljYWNpb25lcz49NzAsIkFwcm9iYWRvIiwiUmVwcm9iYWRvIikNCmBgYA0KDQojIENvbmRpY2lvbmFsZXM6IGlndWFsID09LCBkZXNpZ3VhbCAhPQ0KYGBge3J9DQpzdW1tYXJ5KHRhYmxhX2RlX2NhbGlmaWNhY2lvbmVzKQ0Kc3RyKHRhYmxhX2RlX2NhbGlmaWNhY2lvbmVzKQ0KaGVhZCh0YWJsYV9kZV9jYWxpZmljYWNpb25lcykgIzYgcG9yIGRlZmF1bHQNCnRhaWwodGFibGFfZGVfY2FsaWZpY2FjaW9uZXMpDQpgYGANCg0KIyBTRUxFQ1QgcGFyYSBzZWxlY2Npb25hciBjb2x1bW5hcw0KYGBge3J9DQpyZXN1bHRhZG9zIDwtIHNlbGVjdCh0YWJsYV9kZV9jYWxpZmljYWNpb25lcywgLWMobm9tYnJlcykpDQpgYGANCg0KI0ZJTFRFUiBwYXJhIGZpbHRyYXIgcmVuZ2xvbmVzDQpgYGB7cn0NCnJlc3VsdGFkb3MgPC0gZmlsdGVyKHJlc3VsdGFkb3MsIGVzdGF0dXMgPT0iQXByb2JhZG8iKQ0KYGBgDQoNCiNBY3RpdmlkYWQgMS4gQ2FsY3VsYWRvcmEgZGVsIElNQw0KYGBge3J9DQphbHVtbm8gPC0gYygiSmF2aWVyIiwgIkFsYmVydG8iLCAiQ2VzYXIiLCAiS2V2aW4iKQ0KcGVzbyA8LSBjKDkwLCA3MCwgNTAsIDkwKQ0KYWx0dXJhIDwtIGMoMS44MCwgMS44MiwgMS44MywgMS44NSkNCg0KSU1DIDwtIHBlc28gL2FsdHVyYSAqKiAyDQp0YWJsYV9pbWMgPC0gZGF0YS5mcmFtZShhbHVtbm8sIElNQykNCnRhYmxhX2ltYyRFc3RhZG8gPC0gaWZlbHNlKHRhYmxhX2ltYyRJTUM8PTI1LCJQZXNvIE5vcm1hbCIsIGlmZWxzZSh0YWJsYV9pbWMkSU1DPD0yOS45LCAiU29icmVwZXNvIiwgIk9iZXNpZGFkIikpDQpgYGANCg0KIyBHcmFmaWNhcw0KYGBge3J9DQpzZW1hbmEgPC0gYygxOjEwKQ0KdmVudGFzIDwtIGMoMTUwLDE2MCwxNjUsMTgwLDE3NSwxOTAsMjAwLDE5NSwyMTAsMjIwKQ0KcGxvdChzZW1hbmEsdmVudGFzLHR5cGU9ImIiLCBtYWluID0gIlZlbnRhcyBTZW1hbmFsZXMgKEsgVVNEKSIpDQpkYXRvc192ZW50YXMgPC0gZGF0YS5mcmFtZShzZW1hbmEsIHZlbnRhcykNCnJlZ3Jlc2lvbiA8LSBsbSh2ZW50YXMgfiBzZW1hbmEsIGRhdGE9ZGF0b3NfdmVudGFzKQ0Kc3VtbWFyeShyZWdyZXNpb24pDQpkYXRvc19udWV2b3MgPC0gZGF0YS5mcmFtZShzZW1hbmE9MTE6MjApIA0KcHJlZGljdChyZWdyZXNpb24sIGRhdG9zX251ZXZvcykNCmBgYA0KDQojQ29uY3VzaW9uZXMNCg0KDQo=