# Instalar paquetes y llamar librerias
#install.packages("tidyverse") #Paquetes para manipulación
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
x
## [1] 3
y
## [1] 2
#Operaciones aritmeticas
suma <- x + y
suma
## [1] 5
resta <- x - y
resta
## [1] 1
multiplicación <- x * y
multiplicación
## [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
potenciay <- y ** 2
potenciay
## [1] 4
raiz_cuadrada <- sqrt(x)
raiz_cuadrada
## [1] 1.732051
raiz_cubica <- x ** (1/3)
raiz_cubica
## [1] 1.44225
?sqrt
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
pi
## [1] 3.141593
radio <- 5
area_circulo <- pi*radio**2
area_circulo
## [1] 78.53982
a <- c(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)
## 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))
resultados <- filter(resultados, estatus == "Aprobado")
alumno <- c("Raul", "Renata", "Juan", "Sergio", "Meme")
peso <- c(78, 52, 78, 90, 560)
altura <- c(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$resultado <- 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, "Sobrepeso", "obesidad")))
semana <- c(1:10)
ventas <- c(150,160,165,180,175,190,200,195,210,220)
plot(semana, ventas, type= "l", 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
A través de ejemplos prácticos, se demuestra cómo realizar operaciones aritméticas, aplicar funciones estadísticas y utilizar condicionales para analizar y transformar datos.
Además, la actividad de cálculo del Índice de Masa Corporal (IMC) y la representación gráfica de las ventas semanales ilustran la capacidad de R para manejar datos de manera eficiente y visualizarlos de forma clara. La implementación de regresiones lineales refuerza el análisis predictivo, mostrando su utilidad en la toma de decisiones basadas en datos.
En general, este programa ofrece una base sólida para el uso de R en análisis de datos y estadística, proporcionando herramientas clave para la exploración y modelado de información en diversos contextos.