Instalar paquetes y llamar librerias

library(tidyverse)

Insignar una variable

x <- 3
y <- 2

Imprimir resultado

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

Operaciones aritmeticas

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
potencia <- x ** 2
potencia 
## [1] 9

Funciones

raiz_cuadrada <- sqrt(x)
raiz_cuadrada
## [1] 1.732051
exponencial1 <- exp(1)
exponencial1
## [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

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)
a
## [1] 1 2 3 4 5
b <- c(1:100)
b
##   [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
##  [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36
##  [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54
##  [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72
##  [73]  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
##  [91]  91  92  93  94  95  96  97  98  99 100
c <- c(1,10, by=0.5)
c
##             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_descendente <- sort(calificaciones, decreasing = TRUE)
orden_descendente
## [1] 100 100  90  65  50

Tablas

tabla_calificaciones <- data.frame(nombres, calificaciones)
tabla_calificaciones$estatus <- ifelse(tabla_calificaciones$calificaciones>=70,"Aprobado", "Reprobado")
summary(tabla_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_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_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_calificaciones)
##   nombres calificaciones   estatus
## 1    Juan            100  Aprobado
## 2     Ana             90  Aprobado
## 3   Pedro             50 Reprobado
## 4   Carla            100  Aprobado
## 5    Sara             65 Reprobado

Marco´s IMC

alumno <- c("Marco", "Fernando")
peso <- c(68, 62)
altura <- c (1.76, 1.75)

IMC <- (peso/(altura*altura))
IMC
## [1] 21.95248 20.24490
# Determinar la categoría usando ifelse
categoria <- ifelse(IMC < 18.5, "Bajo peso",
                    ifelse(IMC < 24.9, "Peso normal",
                           ifelse(IMC < 29.9, "Sobrepeso", "Obesidad")))

# Mostrar resultado
resultado <- data.frame(Peso = peso, Altura = altura, IMC = round(IMC, 2), Categoria = categoria)
print(resultado)
##   Peso Altura   IMC   Categoria
## 1   68   1.76 21.95 Peso normal
## 2   62   1.75 20.24 Peso normal

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
#file.choose()

Conclusion

En este código, exploramos los fundamentos del lenguaje R, lo cual me pareció una experiencia interesante y enriquecedora. Hasta ahora, mi única experiencia en programación había sido con Python, por lo que aprender un nuevo lenguaje me permitió ampliar mis habilidades y perspectiva en el análisis de datos. Descubrí que R tiene una sintaxis particular, con herramientas y funcionalidades diseñadas específicamente para el manejo y la visualización de datos, lo que lo convierte en una excelente opción para análisis estadísticos y científicos.

Este primer acercamiento me motivó a seguir explorando R en mayor profundidad, ya que su potencial para el procesamiento de datos y la generación de gráficos es muy amplio. A medida que avance en mi aprendizaje, espero comparar más a fondo sus diferencias y ventajas en relación con Python, y aprovechar al máximo sus capacidades en futuros proyectos.