Instalar paquetes y llamar librerias

# install.packages("tidyverse") 
library(tidyverse)

Principio

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] 1
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
raiz_cubica <- x ** (1/3)
raiz_cubica
## [1] 1.44225

funciones

raiz_cuadrada <- sqrt (x)
raiz_cuadrada 
## [1] 1.732051
#?sqrt #help

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

constantes

pi
## [1] 3.141593
radio <- 5 
area_circulo <- pi*radio**2
area_circulo
## [1] 78.53982
#vectores-secuencia datos
a <- c(1,2,3,4,5) # o 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
#SELECT para seleccionar columnas
resultados <- select (tabla_de_calificaciones, -c(nombres))
resultados
##   calificaciones   estatus
## 1            100  aprobado
## 2             90  aprobado
## 3             50 reprobado
## 4            100  aprobado
## 5             65 reprobado
#FILTER para filtrat renglones
resultados <- filter(resultados, estatus=="aprobado")

Actividad 1. Calculadora del IMC

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$resultado <- ifelse(tabla_salud$IMC < 18.5, "Bajo Peso",
                                ifelse (tabla_salud$IMC <=24.9, "Peso Normal", 
                                        ifelse(tabla_salud$IMC <= 29.9, "Sobrepeso", 
                                               "Obesidad")))

Grafica

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)")

#l-line, p-puntos, b-both
datos_ventas <- data.frame(semana, ventas)
regresion <-lm(ventas ~ semana, data=datos_ventas)
#LM-modelo lineal
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
#si no tiene asteriscos no es significativo, si si si es significativa
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

Conclusiones

R es un lenguaje de programacion util para realizar calculos, principalmente estadisticos, y forma parte de las herramientas del 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

En esta introduccion, lo que llama la atencion es la constante aparicion de alertas o errores en el programa, los cuales encontramos que principalmente se deben a que la version no es la mas reciente a la falta de instalacion de paquetes o llamar a las librerias, problemas de escritura, (typos) y los muchos argumentos que tienen las funciones.

Si desde un inicio programamos de forma estructurada, disciplinada y meticulosaa, podremos preveer muchas de las alertas o errores y asi obtendremos los muchos beneficios de la programacion en R, como la prediccion de los pronosticos.

LS0tCnRpdGxlOiAiY29tYW5kb3MgYmFzaWNvcyIKYXV0aG9yOiAibWF5YSBhMDE3MjI1MDgiCmRhdGU6ICIyMDI1LTAzLTE4IgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IFRSVUUKICAgIHRvY19mbG9hdDogVFJVRQogICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgdGhlbWU6ICJjb3NtbyIKLS0tCiFbXShodHRwczovL21lZGlhNC5naXBoeS5jb20vbWVkaWEvdjEuWTJsa1BUYzVNR0kzTmpFeGFqUjRjMlJtZDNGMWMzVmtibkZuYnpkcmEzQmlibU5pZG0xaGRXZzRaekp0ZFRaMGJISm9kU1psY0QxMk1WOXBiblJsY201aGJGOW5hV1pmWW5sZmFXUW1ZM1E5WncvU1l1Vzg3UWYwaTZtR3k2YUlSL2dpcGh5LmdpZikKCkluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcmlhcwpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQojIGluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpIApsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgojIFByaW5jaXBpbwpgYGB7cn0KeCA8LSAzCnkgPC0gMiAKCngKeQoKc3VtYSA8LSB4ICsgeQpzdW1hCgpyZXN0YSA8LSB4IC0geQpyZXN0YQoKbXVsdGlwbGljYWNpb24gPC0geCAtIHkgCm11bHRpcGxpY2FjaW9uCgpkaXZpc2lvbiA8LSB4L3kKZGl2aXNpb24KCmRpdmlzaW9uX2VudGVyYSA8LSB4ICUvJSB5CmRpdmlzaW9uX2VudGVyYQoKcmVzaWR1byA8LSB4ICUlIHkgCnJlc2lkdW8KCnBvdGVuY2lhIDwtIHggKiogMiAKcG90ZW5jaWEKCnJhaXpfY3ViaWNhIDwtIHggKiogKDEvMykKcmFpel9jdWJpY2EKYGBgCgojIGZ1bmNpb25lcwpgYGB7cn0KcmFpel9jdWFkcmFkYSA8LSBzcXJ0ICh4KQpyYWl6X2N1YWRyYWRhIAoKIz9zcXJ0ICNoZWxwCgpleHBvbmVuY2lhbCA8LSBleHAoMSkKZXhwb25lbmNpYWwKCmFic29sdXRvIDwtIGFicyh4KQphYnNvbHV0bwoKc2lnbm8gPC0gc2lnbih4KQpzaWdubwoKcmVkb25kZW9fYXJyaWJhIDwtY2VpbGluZyh4L3kpCnJlZG9uZGVvX2FycmliYQoKcmVkb25kZW9fYWJham8gPC0gZmxvb3IoeC95KQpyZWRvbmRlb19hYmFqbwoKdHJ1bmNhciA8LSB0cnVuYyh4L3kpCnRydW5jYXIKYGBgCgojIGNvbnN0YW50ZXMKYGBge3J9CnBpCnJhZGlvIDwtIDUgCmFyZWFfY2lyY3VsbyA8LSBwaSpyYWRpbyoqMgphcmVhX2NpcmN1bG8KCiN2ZWN0b3Jlcy1zZWN1ZW5jaWEgZGF0b3MKYSA8LSBjKDEsMiwzLDQsNSkgIyBvIDE6NQphCgpiIDwtIHNlcSgxLDEwLCBieSA9IDAuNSkKYgoKbm9tYnJlcyA8LSBjKCJKdWFuIiwiQW5hIiwiUGVkcm8iLCAiQ2FybGEiLCJTYXJhIikKbm9tYnJlcwoKY2FsaWZpY2FjaW9uZXMgPC0gYygxMDAsOTAsNTAsMTAwLDY1KQpjYWxpZmljYWNpb25lcwoKbG9uZ2l0dWQgPC0gbGVuZ3RoKGEpCmxvbmdpdHVkCgpwcm9tZWRpbyA8LSBtZWFuKGNhbGlmaWNhY2lvbmVzKQpwcm9tZWRpbwoKb3JkZW5fYXNjZW5kZW50ZSA8LSBzb3J0KGNhbGlmaWNhY2lvbmVzKQpvcmRlbl9hc2NlbmRlbnRlCgpvcmRlbl9kZXNjZW5kZW50ZSA8LSBzb3J0KGNhbGlmaWNhY2lvbmVzLCBkZWNyZWFzaW5nID0gVFJVRSkKb3JkZW5fZGVzY2VuZGVudGUKYGBgCgojIFRhYmxhcwpgYGB7cn0KdGFibGFfZGVfY2FsaWZpY2FjaW9uZXMgPC0gZGF0YS5mcmFtZShub21icmVzLGNhbGlmaWNhY2lvbmVzKQp0YWJsYV9kZV9jYWxpZmljYWNpb25lcyRlc3RhdHVzIDwtIGlmZWxzZSh0YWJsYV9kZV9jYWxpZmljYWNpb25lcyRjYWxpZmljYWNpb25lcz49NzAsImFwcm9iYWRvIiwicmVwcm9iYWRvIikKCiNjb25kaWNpb25hbGVzOiBJZ3VhbCA9PSAsIGRlc2lndWFsICE9LCA+LCA8LCA+PSwgPD0Kc3VtbWFyeSh0YWJsYV9kZV9jYWxpZmljYWNpb25lcykKc3RyKHRhYmxhX2RlX2NhbGlmaWNhY2lvbmVzKQpoZWFkKHRhYmxhX2RlX2NhbGlmaWNhY2lvbmVzKSAjNiBwb3IgZGVmYXVsdAp0YWlsICh0YWJsYV9kZV9jYWxpZmljYWNpb25lcykKCiNTRUxFQ1QgcGFyYSBzZWxlY2Npb25hciBjb2x1bW5hcwpyZXN1bHRhZG9zIDwtIHNlbGVjdCAodGFibGFfZGVfY2FsaWZpY2FjaW9uZXMsIC1jKG5vbWJyZXMpKQpyZXN1bHRhZG9zCgojRklMVEVSIHBhcmEgZmlsdHJhdCByZW5nbG9uZXMKcmVzdWx0YWRvcyA8LSBmaWx0ZXIocmVzdWx0YWRvcywgZXN0YXR1cz09ImFwcm9iYWRvIikKYGBgCgojIEFjdGl2aWRhZCAxLiBDYWxjdWxhZG9yYSBkZWwgSU1DCmBgYHtyfQphbHVtbm8gPC0gYygiUmF1bCIsICJSZW5hdGEiLCJKdWFuIiwiU2VyZ2lvIiwiTWVtZSIpCnBlc28gPC0gYyg3OCw1Miw3OCw5MCw1NjApCmFsdHVyYSA8LSBjKDEuODAsMS41NSwxLjc1LDEuODYsMS44MCkKCnRhYmxhX3NhbHVkIDwtIGRhdGEuZnJhbWUoYWx1bW5vLHBlc28sYWx0dXJhKQp0YWJsYV9zYWx1ZCRJTUMgPC0gdGFibGFfc2FsdWQkcGVzbyAvIHRhYmxhX3NhbHVkJGFsdHVyYSoqMgp0YWJsYV9zYWx1ZCRyZXN1bHRhZG8gPC0gaWZlbHNlKHRhYmxhX3NhbHVkJElNQyA8IDE4LjUsICJCYWpvIFBlc28iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZSAodGFibGFfc2FsdWQkSU1DIDw9MjQuOSwgIlBlc28gTm9ybWFsIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UodGFibGFfc2FsdWQkSU1DIDw9IDI5LjksICJTb2JyZXBlc28iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2Jlc2lkYWQiKSkpCmBgYAoKIyBHcmFmaWNhCmBgYHtyfQpzZW1hbmEgPC0gYygxOjEwKQp2ZW50YXMgPC0gYygxNTAsMTYwLDE2NSwxODAsMTc1LDE5MCwyMDAsMTk1LDIxMCwyMjApCnBsb3Qoc2VtYW5hLHZlbnRhcywgdHlwZT0iYiIsIG1haW49IlZlbnRhcyBTZW1hbmFsZXMoSyBVU0QpIikKI2wtbGluZSwgcC1wdW50b3MsIGItYm90aApkYXRvc192ZW50YXMgPC0gZGF0YS5mcmFtZShzZW1hbmEsIHZlbnRhcykKcmVncmVzaW9uIDwtbG0odmVudGFzIH4gc2VtYW5hLCBkYXRhPWRhdG9zX3ZlbnRhcykKI0xNLW1vZGVsbyBsaW5lYWwKc3VtbWFyeShyZWdyZXNpb24pCiNzaSBubyB0aWVuZSBhc3RlcmlzY29zIG5vIGVzIHNpZ25pZmljYXRpdm8sIHNpIHNpIHNpIGVzIHNpZ25pZmljYXRpdmEKZGF0b3NfbnVldm9zIDwtIGRhdGEuZnJhbWUoc2VtYW5hPTExOjIwKSAKcHJlZGljY2lvbiA8LSBwcmVkaWN0KHJlZ3Jlc2lvbixkYXRvc19udWV2b3MpCnByZWRpY2Npb24KYGBgCgojIENvbmNsdXNpb25lcwoqKlIqKiBlcyB1biBsZW5ndWFqZSBkZSBwcm9ncmFtYWNpb24gdXRpbCBwYXJhIHJlYWxpemFyIGNhbGN1bG9zLCBwcmluY2lwYWxtZW50ZSBlc3RhZGlzdGljb3MsIHkgZm9ybWEgcGFydGUgZGUgbGFzIGhlcnJhbWllbnRhcyBkZWwgKkJpZyBEYXRhKgoKKlJTdHVkaW8qIGVzIGVsIGVudG9ybm8gZG9uZGUgc2UgcHVlZGUgcHJvZ3JhbWFyICpSKiwgeSBncmFjaWFzIGEgcXVlIHRhbWJpZW4gYXF1aSBzZSBwdWVkZSBwcm9ncmFtYXIgKlB5dGhvbiosIGhhY2UgdW5vcyBhw7FvcyBzZSBhbnVuY2lvIHF1ZSBzdSBub21icmUgc2VyYSAqUG9zaXQqCgpFbiBlc3RhIGludHJvZHVjY2lvbiwgbG8gcXVlIGxsYW1hIGxhIGF0ZW5jaW9uIGVzIGxhIGNvbnN0YW50ZSBhcGFyaWNpb24gZGUgYWxlcnRhcyBvIGVycm9yZXMgZW4gZWwgcHJvZ3JhbWEsIGxvcyBjdWFsZXMgZW5jb250cmFtb3MgcXVlIHByaW5jaXBhbG1lbnRlIHNlIGRlYmVuIGEgcXVlIGxhIHZlcnNpb24gbm8gZXMgbGEgbWFzIHJlY2llbnRlIGEgbGEgZmFsdGEgZGUgaW5zdGFsYWNpb24gZGUgcGFxdWV0ZXMgbyBsbGFtYXIgYSBsYXMgbGlicmVyaWFzLCBwcm9ibGVtYXMgZGUgZXNjcml0dXJhLCAoKnR5cG9zKikgeSBsb3MgbXVjaG9zIGFyZ3VtZW50b3MgcXVlIHRpZW5lbiBsYXMgZnVuY2lvbmVzLiAKClNpIGRlc2RlIHVuIGluaWNpbyBwcm9ncmFtYW1vcyBkZSBmb3JtYSBlc3RydWN0dXJhZGEsIGRpc2NpcGxpbmFkYSB5IG1ldGljdWxvc2FhLCBwb2RyZW1vcyBwcmV2ZWVyIG11Y2hhcyBkZSBsYXMgYWxlcnRhcyBvIGVycm9yZXMgeSBhc2kgb2J0ZW5kcmVtb3MgbG9zIG11Y2hvcyBiZW5lZmljaW9zIGRlIGxhIHByb2dyYW1hY2lvbiBlbiAqUiosIGNvbW8gbGEgcHJlZGljY2lvbiBkZSBsb3MgcHJvbm9zdGljb3MuCg==