#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
x <- -3
y <- 2
#Imprimir Resultado
x
## [1] -3
y
## [1] 2
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
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)
pi
## [1] 3.141593
radio <- 5
area_circulo <- pi*radio**2
area_circulo
## [1] 78.53982
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
tabla_de_calificaciones <- data.frame(nombres, calificaciones)
tabla_de_calificaciones$estatus <- ifelse(tabla_de_calificaciones$calificaciones>=70,"Aprobado","Reprobado")
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
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"))
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