Asignar una variabble

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

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

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

##Conclusiones Este ejercicio en RStudio nos permitió practicar operaciones matemáticas, manejo de vectores, tablas y funciones básicas. También aprendimos a usar paquetes como tidyverse para manipular datos de manera más eficiente.

Trabajar con condicionales y funciones estadísticas nos ayudó a analizar información, como en el caso del cálculo del IMC y la clasificación de estatus de los alumnos. Estas herramientas son clave para procesar datos de manera automatizada y estructurada.

Además, exploramos la visualización de datos con gráficos y regresión lineal, lo que facilita interpretar tendencias y tomar decisiones basadas en datos. La gráfica de ventas es un buen ejemplo de cómo se pueden analizar patrones en el tiempo.

En general, este ejercicio nos mostró la importancia de la programación para el análisis de datos. RStudio no solo permite realizar cálculos, sino que también ayuda a organizar, visualizar y entender mejor la información, lo cual es útil en muchos campos.

LS0tDQp0aXRsZTogIkNvbWFuZG9zIEJhc2ljb3MiDQphdXRob3I6ICJKYXZpZXIgTGVjaHVnYSBBMDE1NzE1MTMiDQpkYXRlOiAiMDMvMTgvMjUiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCiAgICB0aGVtZTogInlldGkiDQotLS0NCi0tLQ0KIyBBc2lnbmFyIHVuYSB2YXJpYWJibGUNCmBgYHtyfQ0KeCA8LSAtMw0KeSA8LSAyDQpgYGANCg0KIyBJbXByaW1pciBSZXN1bHRhZG8NCmBgYHtyfQ0KeA0KeQ0KYGBgDQoNCiMgT3BlcmFjaW9uZXMgQXJpdG1ldGljYXMNCmBgYHtyfQ0Kc3VtYSA8LSB4ICsgeQ0Kc3VtYQ0KDQpyZXN0YSA8LSB4IC0geQ0KcmVzdGENCg0KbXVsdGlwbGljYWNpw7NuIDwtIHgqeQ0KbXVsdGlwbGljYWNpw7NuDQoNCmRpdmlzacOzbiA8LSB4L3kNCmRpdmlzacOzbg0KDQpkaXZpc2nDs25fZW50ZXJhIDwtIHggJS8lIHkNCmRpdmlzacOzbl9lbnRlcmENCg0KcmVzaWR1byA8LSB4ICUlIHkNCnJlc2lkdW8NCg0KcG90ZW5jaWEgPC0geCAqKiB5IA0KcG90ZW5jaWENCg0KcmFpel9jdWJpY2EgPC0geCAqKiAoMS8zKQ0KcmFpel9jdWJpY2ENCmBgYA0KDQoNCg0KIyBGdW5jaW9uZXMNCmBgYHtyfQ0KcmFpel9jdWFkcmFkYSA8LSBzcXJ0KHgpDQpyYWl6X2N1YWRyYWRhDQpgYGANCg0KP3NxcnQgIyBFbCBzaWdubyBkZSBpbnRlcnJvZ2FjacOzbiBlcyBwYXJhIGRlc3BsZWdhciBheXVkYQ0KYGBge3J9DQpleHBvbmVuY2lhbCA8LSBleHAoMSkNCmV4cG9uZW5jaWFsDQoNCmFic29sdXRvIDwtIGFicyh4KQ0KYWJzb2x1dG8NCg0Kc2lnbm8gPC0gc2lnbih4KQ0Kc2lnbm8NCg0KcmVkb25kZW9fYXJyaWJhIDwtIGNlaWxpbmcgKHgveSkNCnJlZG9uZGVvX2FycmliYQ0KDQpyZWRvbmRlb19hYmFqbyA8LSBmbG9vcih4L3kpDQpyZWRvbmRlb19hYmFqbw0KDQp0cnVuY2FyIDwtIHRydW5jKHgveSkNCmBgYA0KDQoNCg0KIyBDb25zdGFudGVzDQpgYGB7cn0NCnBpDQpyYWRpbyA8LSA1DQphcmVhX2NpcmN1bG8gPC0gcGkqcmFkaW8qKjINCmFyZWFfY2lyY3Vsbw0KYGBgDQoNCg0KIyBWZWN0b3Jlcw0KYGBge3J9DQphIDwtIGMoMSwyLDMsNCw1KSAjU2VjdWVuY2lhIGRlIGVudGVyb3MgMTo1DQphDQoNCmIgPC0gc2VxKDEsMTAsIGJ5ID0gMC41KQ0KYg0KDQpub21icmVzIDwtIGMoIkp1YW4iLCAiQW5hIiwgIlBlZHJvIiwgIkNhcmxhIiwgIlNhcmEiKQ0Kbm9tYnJlcw0KDQpjYWxpZmljYWNpb25lcyA8LSBjKDEwMCw5MCw1MCwxMDAsNjUpDQpjYWxpZmljYWNpb25lcw0KDQpsb25naXR1ZCA8LSBsZW5ndGgoYSkNCmxvbmdpdHVkDQoNCnByb21lZGlvIDwtIG1lYW4oY2FsaWZpY2FjaW9uZXMpDQpwcm9tZWRpbw0KDQpvcmRlbl9hc2NlbmRlbnRlIDwtIHNvcnQoY2FsaWZpY2FjaW9uZXMpDQpvcmRlbl9hc2NlbmRlbnRlDQoNCm9yZGVuX2Rlc2NlbmRlbnRlIDwtIHNvcnQoY2FsaWZpY2FjaW9uZXMsIGRlY3JlYXNpbmcgPSBUUlVFKQ0Kb3JkZW5fZGVzY2VuZGVudGUNCmBgYA0KDQoNCiMgVGFibGFzDQpgYGB7cn0NCnRhYmxhX2RlX2NhbGlmaWNhY2lvbmVzIDwtIGRhdGEuZnJhbWUobm9tYnJlcywgY2FsaWZpY2FjaW9uZXMpDQp0YWJsYV9kZV9jYWxpZmljYWNpb25lcyRlc3RhdHVzIDwtIGlmZWxzZSh0YWJsYV9kZV9jYWxpZmljYWNpb25lcyRjYWxpZmljYWNpb25lcz49NzAsIkFwcm9iYWRvIiwiUmVwcm9iYWRvIikNCmBgYA0KDQoNCiMgQ29uZGljaW9uYWxlczogaWd1YWwgPT0sIGRlc2lndWFsICE9DQoNCmBgYHtyfQ0Kc3VtbWFyeSh0YWJsYV9kZV9jYWxpZmljYWNpb25lcykNCnN0cih0YWJsYV9kZV9jYWxpZmljYWNpb25lcykNCmhlYWQodGFibGFfZGVfY2FsaWZpY2FjaW9uZXMpICM2IHBvciBkZWZhdWx0DQp0YWlsKHRhYmxhX2RlX2NhbGlmaWNhY2lvbmVzKQ0KYGBgDQoNCg0KIyBJbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXJpYXMNCg0KYGBge3J9DQojaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikNCmxpYnJhcnkgKHRpZHl2ZXJzZSkNCmBgYA0KDQojIFNFTEVDVCBwYXJhIHNlbGVjY2lvbmFyIGNvbHVtbmFzDQpgYGB7cn0NCnJlc3VsdGFkb3MgPC0gc2VsZWN0KHRhYmxhX2RlX2NhbGlmaWNhY2lvbmVzLCAtYyhub21icmVzKSkNCmBgYA0KDQoNCiNGSUxURVIgcGFyYSBmaWx0cmFyIHJlbmdsb25lcw0KYGBge3J9DQpyZXN1bHRhZG9zIDwtIGZpbHRlcihyZXN1bHRhZG9zLCBlc3RhdHVzID09IkFwcm9iYWRvIikNCmBgYA0KDQoNCiNBY3RpdmlkYWQgMS4gQ2FsY3VsYWRvcmEgZGVsIElNQw0KYGBge3J9DQphbHVtbm8gPC0gYygiSmF2aWVyIiwgIkFsYmVydG8iLCAiQ2VzYXIiLCAiS2V2aW4iKQ0KcGVzbyA8LSBjKDkwLCA3MCwgNTAsIDkwKQ0KYWx0dXJhIDwtIGMoMS44MCwgMS44MiwgMS44MywgMS44NSkNCg0KSU1DIDwtIHBlc28gL2FsdHVyYSAqKiAyDQp0YWJsYV9pbWMgPC0gZGF0YS5mcmFtZShhbHVtbm8sIElNQykNCnRhYmxhX2ltYyRFc3RhZG8gPC0gaWZlbHNlKHRhYmxhX2ltYyRJTUM8PTI1LCJQZXNvIE5vcm1hbCIsIGlmZWxzZSh0YWJsYV9pbWMkSU1DPD0yOS45LCAiU29icmVwZXNvIiwgIk9iZXNpZGFkIikpDQpgYGANCg0KDQojR3JhZmljYXMNCmBgYHtyfQ0Kc2VtYW5hIDwtIGMoMToxMCkNCnZlbnRhcyA8LSBjKDE1MCwxNjAsMTY1LDE4MCwxNzUsMTkwLDIwMCwxOTUsMjEwLDIyMCkNCnBsb3Qoc2VtYW5hLHZlbnRhcyx0eXBlPSJiIiwgbWFpbiA9ICJWZW50YXMgU2VtYW5hbGVzIChLIFVTRCkiKQ0KZGF0b3NfdmVudGFzIDwtIGRhdGEuZnJhbWUoc2VtYW5hLCB2ZW50YXMpDQpyZWdyZXNpb24gPC0gbG0odmVudGFzIH4gc2VtYW5hLCBkYXRhPWRhdG9zX3ZlbnRhcykNCnN1bW1hcnkocmVncmVzaW9uKQ0KZGF0b3NfbnVldm9zIDwtIGRhdGEuZnJhbWUoc2VtYW5hPTExOjIwKSANCnByZWRpY3QocmVncmVzaW9uLCBkYXRvc19udWV2b3MpDQpgYGANCg0KDQojI0NvbmNsdXNpb25lcyANCkVzdGUgZWplcmNpY2lvIGVuIFJTdHVkaW8gbm9zIHBlcm1pdGnDsyBwcmFjdGljYXIgb3BlcmFjaW9uZXMgbWF0ZW3DoXRpY2FzLCBtYW5lam8gZGUgdmVjdG9yZXMsIHRhYmxhcyB5IGZ1bmNpb25lcyBiw6FzaWNhcy4gVGFtYmnDqW4gYXByZW5kaW1vcyBhIHVzYXIgcGFxdWV0ZXMgY29tbyB0aWR5dmVyc2UgcGFyYSBtYW5pcHVsYXIgZGF0b3MgZGUgbWFuZXJhIG3DoXMgZWZpY2llbnRlLg0KDQpUcmFiYWphciBjb24gY29uZGljaW9uYWxlcyB5IGZ1bmNpb25lcyBlc3RhZMOtc3RpY2FzIG5vcyBheXVkw7MgYSBhbmFsaXphciBpbmZvcm1hY2nDs24sIGNvbW8gZW4gZWwgY2FzbyBkZWwgY8OhbGN1bG8gZGVsIElNQyB5IGxhIGNsYXNpZmljYWNpw7NuIGRlIGVzdGF0dXMgZGUgbG9zIGFsdW1ub3MuIEVzdGFzIGhlcnJhbWllbnRhcyBzb24gY2xhdmUgcGFyYSBwcm9jZXNhciBkYXRvcyBkZSBtYW5lcmEgYXV0b21hdGl6YWRhIHkgZXN0cnVjdHVyYWRhLg0KDQpBZGVtw6FzLCBleHBsb3JhbW9zIGxhIHZpc3VhbGl6YWNpw7NuIGRlIGRhdG9zIGNvbiBncsOhZmljb3MgeSByZWdyZXNpw7NuIGxpbmVhbCwgbG8gcXVlIGZhY2lsaXRhIGludGVycHJldGFyIHRlbmRlbmNpYXMgeSB0b21hciBkZWNpc2lvbmVzIGJhc2FkYXMgZW4gZGF0b3MuIExhIGdyw6FmaWNhIGRlIHZlbnRhcyBlcyB1biBidWVuIGVqZW1wbG8gZGUgY8OzbW8gc2UgcHVlZGVuIGFuYWxpemFyIHBhdHJvbmVzIGVuIGVsIHRpZW1wby4NCg0KRW4gZ2VuZXJhbCwgZXN0ZSBlamVyY2ljaW8gbm9zIG1vc3Ryw7MgbGEgaW1wb3J0YW5jaWEgZGUgbGEgcHJvZ3JhbWFjacOzbiBwYXJhIGVsIGFuw6FsaXNpcyBkZSBkYXRvcy4gUlN0dWRpbyBubyBzb2xvIHBlcm1pdGUgcmVhbGl6YXIgY8OhbGN1bG9zLCBzaW5vIHF1ZSB0YW1iacOpbiBheXVkYSBhIG9yZ2FuaXphciwgdmlzdWFsaXphciB5IGVudGVuZGVyIG1lam9yIGxhIGluZm9ybWFjacOzbiwgbG8gY3VhbCBlcyDDunRpbCBlbiBtdWNob3MgY2FtcG9zLg0K