R es un lenguaje de programación de alto nivel …
# Versión
R.version.string
## [1] "R version 4.5.0 (2025-04-11 ucrt)"
# Información completa
R.version
## _
## platform x86_64-w64-mingw32
## arch x86_64
## os mingw32
## crt ucrt
## system x86_64, mingw32
## status
## major 4
## minor 5.0
## year 2025
## month 04
## day 11
## svn rev 88135
## language R
## version.string R version 4.5.0 (2025-04-11 ucrt)
## nickname How About a Twenty-Six
# observar el directorio
getwd()
## [1] "C:/Users/MARYORIE/Downloads"
#Cambiar el directorio
setwd("C:/Users/MARYORIE/Downloads")
getwd()
## [1] "C:/Users/MARYORIE/Downloads"
# Asignar el directorio automaticamente donde se encuentra el documento guardado.
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
getwd()
## [1] "C:/Users/MARYORIE/Downloads"
#Suma
9+7
## [1] 16
#Resta
85-41
## [1] 44
# Multiplicación
8*5
## [1] 40
# División
51/7
## [1] 7.285714
# Parentesis modifica el orden
87/(5+9)
## [1] 6.214286
# Potenciación
6^3
## [1] 216
# Potenciación (mas usada)
6**3
## [1] 216
# Resto y división entera
17%%5
## [1] 2
17%/%5
## [1] 3
# Raiz cuadrada
sqrt(73)
## [1] 8.544004
# Valor absoluto
abs(-73)
## [1] 73
# Función trigonometrica - seno(pi)
sin(pi/2)
## [1] 1
# Función trigonometrica - coseno
cos(0)
## [1] 1
# Logaritmo
log(10)
## [1] 2.302585
#logaritmo base 10
log10(100)
## [1] 2
log(10, base=4)
## [1] 1.660964
#exponencial
exp(1)
## [1] 2.718282
#otras funciones: round()
round(pi,2) # round(digits=2, x=pi)
## [1] 3.14
# Número grande
2324511042900
## [1] 2.324511e+12
# Número muy pequeño
0.000000002581
## [1] 2.581e-09
# Forzar notación cientifica
format(123456, scientific=TRUE)
## [1] "1.23456e+05"
# Suprimir notación cientifica
options(scipen = 999)
2324511042900
## [1] 2324511042900
# Restaurar
options(scipen = 0)
2324511042900
## [1] 2.324511e+12
# Ayuda en funciones especificas
?sqrt
help(sqrt)
# Buscar documentación
??sqrt
help.search("sqrt")
# Ayuda sobre operadores
?"**"
help("**")
# Ejemplo de alguna función
example(abs)
##
## abs> require(stats) # for spline
##
## abs> require(graphics)
##
## abs> xx <- -9:9
##
## abs> plot(xx, sqrt(abs(xx)), col = "red")
##
## abs> lines(spline(xx, sqrt(abs(xx)), n=101), col = "pink")
# Argumento de la función
args(abs)
## function (x)
## NULL
args(round)
## function (x, digits = 0, ...)
## NULL
# Para asignar tradicionalmente ">-")
x <- 20
# Mostrar
x
## [1] 20
print(x)
## [1] 20
# Método alternativo "="
y = 30
y
## [1] 30
# Asignación hacia la derecha
40 -> Z
40
## [1] 40
# Mostrar valor al asignar (de manera inmediata)
(w <- 50)
## [1] 50
TRUE, FALSE, NULL, INF, NaN, NA…
?reserved
# Listar todo lo que se tienes guardado
ls()
## [1] "w" "x" "xx" "y" "Z"
# Obtener información (estructura) objeto
str(x)
## num 20
# Eliminar objetos especifcos
rm(y)
# Eliminar todo
rm(list=ls())
# Asignar
edad<-20
Es una secuencia de datos, que tiene un mismo tipo de dato
# Creación de un vector
vector <- c(21,23,25,27,29)
vector
## [1] 21 23 25 27 29
# Crear un vector de caracteres
color <- c("rojo", "Azul","verde")
color
## [1] "rojo" "Azul" "verde"
# Crear un vector a partir de calculos
vector3 <- c(74+5, sqrt(25), abs(-23), 84/7)
vector3
## [1] 79 5 23 12
# Combinar vectores
v1<-c(1,2,3)
v2<-c(4,5,6)
v3 <- c(v1,v2)
v3
## [1] 1 2 3 4 5 6
# Clase de un vector
class(vector)
## [1] "numeric"
class(vector3)
## [1] "numeric"
class(color)
## [1] "character"
class(v3)
## [1] "numeric"
vector4<-c(40,"Hola", 50)
vector4
## [1] "40" "Hola" "50"
class(vector4)
## [1] "character"
#Secuencias enteras de datos (inicio:fin)
1:10
## [1] 1 2 3 4 5 6 7 8 9 10
# Secuencias descendente
15:10
## [1] 15 14 13 12 11 10
# Negativos
-5:5
## [1] -5 -4 -3 -2 -1 0 1 2 3 4 5
# secuencia con decimales
1.5:5.8
## [1] 1.5 2.5 3.5 4.5 5.5
# por incremento especifico
seq(from=0, to=10, by=2)
## [1] 0 2 4 6 8 10
seq(from=0, to=10, by=0.2)
## [1] 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8
## [16] 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 5.8
## [31] 6.0 6.2 6.4 6.6 6.8 7.0 7.2 7.4 7.6 7.8 8.0 8.2 8.4 8.6 8.8
## [46] 9.0 9.2 9.4 9.6 9.8 10.0
# Por número de elemento
seq(from =0, to =10, length.out=20)
## [1] 0.0000000 0.5263158 1.0526316 1.5789474 2.1052632 2.6315789
## [7] 3.1578947 3.6842105 4.2105263 4.7368421 5.2631579 5.7894737
## [13] 6.3157895 6.8421053 7.3684211 7.8947368 8.4210526 8.9473684
## [19] 9.4736842 10.0000000
# Generar sequencia de manera descendente
seq(from=10,to=0, by=-1)
## [1] 10 9 8 7 6 5 4 3 2 1 0
# Repetir un valor
rep(20, times=5)
## [1] 20 20 20 20 20
# repetir un vector completo
rep(c(21,23), each=3)
## [1] 21 21 21 23 23 23
# Combinar times y each
rep(c("Rojo","Azul"),times=3, each=2)
## [1] "Rojo" "Rojo" "Azul" "Azul" "Rojo" "Rojo" "Azul" "Azul" "Rojo" "Rojo"
## [11] "Azul" "Azul"
# longitud de un vector
length(vector)
## [1] 5
# extraer un elemento
vector5<-c(14,15,18,19,21)
# Extraer el elemento de la posición 1
vector5[1]
## [1] 14
# Extraer el 3er elemento
vector5[3]
## [1] 18
# Extraer secuencia de elemento desde 2 hasta 4
vector5[2:4]
## [1] 15 18 19
# Extraer el 1, el 3er y último elemento
vector5[c(1,3,5)]
## [1] 14 18 21
# Extraer en orden inverso
vector5[-1]
## [1] 15 18 19 21
# Generar matriz
matrix(1:16, nrow=4)
## [,1] [,2] [,3] [,4]
## [1,] 1 5 9 13
## [2,] 2 6 10 14
## [3,] 3 7 11 15
## [4,] 4 8 12 16
matrix(1:16, nrow=4, byrow = TRUE)
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
## [4,] 13 14 15 16
mi_matriz = matrix(1:16, nrow=4, byrow = TRUE)
mi_matriz
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
## [4,] 13 14 15 16
# Funciones básicas
# dimensiones
dim(mi_matriz)
## [1] 4 4
nrow(mi_matriz)
## [1] 4
ncol(mi_matriz)
## [1] 4
# Indexación
matriz2<-matrix(1:20, nrow=4, byrow = TRUE)
matriz2
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 2 3 4 5
## [2,] 6 7 8 9 10
## [3,] 11 12 13 14 15
## [4,] 16 17 18 19 20
# Extrer el 7
matriz2[2,2]
## [1] 7
# Extrer el 7
matriz2[4,5]
## [1] 20
matriz2+10
## [,1] [,2] [,3] [,4] [,5]
## [1,] 11 12 13 14 15
## [2,] 16 17 18 19 20
## [3,] 21 22 23 24 25
## [4,] 26 27 28 29 30
matriz2**2
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 4 9 16 25
## [2,] 36 49 64 81 100
## [3,] 121 144 169 196 225
## [4,] 256 289 324 361 400
# Multiplicación matricial
matriz1<-matrix(1:12, nrow = 4)
matriz1
## [,1] [,2] [,3]
## [1,] 1 5 9
## [2,] 2 6 10
## [3,] 3 7 11
## [4,] 4 8 12
matriz2<-matrix(13:24, nrow = 3)
matriz2
## [,1] [,2] [,3] [,4]
## [1,] 13 16 19 22
## [2,] 14 17 20 23
## [3,] 15 18 21 24
matriz1%*%matriz2
## [,1] [,2] [,3] [,4]
## [1,] 218 263 308 353
## [2,] 260 314 368 422
## [3,] 302 365 428 491
## [4,] 344 416 488 560
data.frame(matrix(1:16, nrow=4))
## X1 X2 X3 X4
## 1 1 5 9 13
## 2 2 6 10 14
## 3 3 7 11 15
## 4 4 8 12 16
df <- data.frame(nombre=c("Maryorie", "Jorge"), edad=c(20,22))
df
## nombre edad
## 1 Maryorie 20
## 2 Jorge 22
# Importar datos desde github
df_github<-read.csv("https://github.com/VictorGuevaraP/ME-Machine-Learning/raw/refs/heads/master/Churn.CSV",encoding = "latin1",sep = ";")
head(df_github)
## ID.Cliente Genero Mayor65años Socio Dependientes MultipleLineas
## 1 7590-VHVEG Femenino 0 Si No No servicio tel
## 2 5575-GNVDE Masculino 0 No No No
## 3 3668-QPYBK Masculino 0 No No No
## 4 7795-CFOCW Masculino 0 No No No servicio tel
## 5 9237-HQITU Femenino 0 No No No
## 6 9305-CDSKC Femenino 0 No No Si
## Internet SeguridadOnline Backup ProteccionDispositivo
## 1 DSL No Si No
## 2 DSL Si No Si
## 3 DSL Si Si No
## 4 DSL Si No Si
## 5 Fibra Optica No No No
## 6 Fibra Optica No No Si
## No.servicio.Internet TVPago PeliculasStreaming TerminoContrato
## 1 No No No Mes a mes
## 2 No No No Un año
## 3 No No No Mes a mes
## 4 Si No No Un año
## 5 No No No Mes a mes
## 6 No Si Si Mes a mes
## FactElectronica MetodoPago CargoMensual ImporteTotal pemanencia
## 1 Si Cheque electronico 29.85 29.85 1
## 2 No Cheque fisico NA 1889.50 34
## 3 Si Cheque fisico 53.85 108.15 2
## 4 No TransfBanca (automatica) 42.30 1840.75 45
## 5 Si Cheque electronico 70.70 151.65 2
## 6 Si Cheque electronico 99.65 820.50 8
## ServicioTel Churn
## 1 No No
## 2 Si No
## 3 Si Si
## 4 <NA> No
## 5 Si Si
## 6 Si Si
# Importar datos desde kaggle
# Importar datos desde INEI
.