# Intalar paquetes e instalar librerias

#install.packagas("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

Asignar 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
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

Fernando´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

#Conclusiones # R es un lenguaje de programacion util para ralizar alculos principalmente estadisticos, y forma parte de las herramientas de Big Data

#Rstudio es el 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