# instal.packages("tidyverse") # Paquete para manipulacion 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
x <- 3
y <- 2
x
## [1] 3
y
## [1] 2
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_cuadrada <- sqrt(x)
raiz_cuadrada
## [1] 1.732051
raiz_cubica <- x ** (1/3)
raiz_cubica
## [1] 1.44225
# ?sqrt # El signo de interrogacion es para desplagar 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
pi
## [1] 3.141593
radio <- 5
area_circulo <- pi*radio^2
area_circulo
## [1] 78.53982
a <- c(1,2,3,4,5) # Secuencia de enteros 1:5
a
## [1] 1 2 3 4 5
b <- c(1,10, by = 0.5)
b
## by
## 1.0 10.0 0.5
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_decendente <- sort(calificaciones, decreasing = TRUE)
orden_decendente
## [1] 100 100 90 65 50
tabla_de_calificaciones <- data.frame(nombres, calificaciones)
# Crear la columna 'estatus' evaluando la columna 'calificaciones'
tabla_de_calificaciones$estatus <- ifelse(tabla_de_calificaciones$calificaciones >= 70, "Aprobado", "Reprobado")
# Condicionales: 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 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
#instal.packages("tidyverse")
library(tidyverse)
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_salud <- data.frame(alumno, peso, altura)
tabla_salud$IMC <- tabla_salud$peso / tabla_salud$altura^2
tabla_salud$resultados <- ifelse(tabla_salud$IMC < 18.5, "Bajo Peso", ifelse(tabla_salud$IMC <=24.9, "Peso Normal", ifelse(tabla_salud$IMC <=29.9, "Sobrepeso", "Obesidad")))
# Gráfica
Semana <- 1:10
Ventas <- c(150,160,165,180,175,190,200,195,210,220)
# Crear gráfico de línea con puntos
plot(Semana, Ventas, type = "b",
main = "Ventas Semanales (K USD)",
xlab = "Semana",
ylab = "Ventas (K USD)")
# Crear data frame
datos_ventas <- data.frame(Semana, Ventas)
# Modelo de regresión lineal
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
# Predicción para semanas 11 a 20
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
R es un lenguaje de programaion util para realizar calculos, principalmente estadisticos, y forma parte de las herramientas del Big Data.
RStudio es e; entorno donde se puede programar R, y gracias a que tambien aqui se puede programar Python, hace unos años se anuncio que su nombre sera Posit.
En esta introduccion lo que llama la atencion es la constante aparicion de alertas o errores en el programa, los cuales encontramos que principalmente sedeben a que la version no es la mas reciente, a la falta de instalacion de paquetes o llamar a las librerias, prolemas de escritura (typos) y los muchos argumentos que tienen las funciones.
Si desde un inico programamos de formas estructurada, disciplinada y meticulosa, podremos preveer muchas de las alertas o errores y asi obtenemos los muchos beneficios