Que es R?

R es un lenguaje y entorno estadístico que es utilizado para analizar, procesar y vizualizar datos

Características en R

  • Es gratuito y de código abierto
  • Especializado en estadística y análisis de datos
  • Gran capacidad para vizualización de datos
  • Lenguaje interpretado
  • Extensible mediante paquetes
  • Facil manipulación de datos
  • Integración con otras herramientas
  • Comunidad grande
  • Multiplataforma

Ver versión en R

# Ver versión
R.version.string
## [1] "R version 4.5.0 (2025-04-11 ucrt)"
# Ver 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

Directorio de trabajo

# Observar directorio
getwd()
## [1] "C:/Users/MARYORIE/OneDrive/Documentos"

Operaciones básicas

# Suma
9+7
## [1] 16
# Resta
100-30
## [1] 70
# Multiplicación
7*5
## [1] 35
# División
18/4
## [1] 4.5
# Paréntesis modifica el orden
80/(4+11)
## [1] 5.333333
# Potenciación
4^4
## [1] 256
# Potenciación mas usada
4**4
## [1] 256
# Resto o división entera
30%%11
## [1] 8

Funciones matemáticas

# Raiz cuadrada
sqrt(225)
## [1] 15
# Valor absoluto
abs(-34)
## [1] 34
# Funciones trigonométricas - sen()
sin(1)
## [1] 0.841471
# Funcion trigonométrica - cos()
cos(0)
## [1] 1
# Logaritmo
log(11)
## [1] 2.397895
# Logaritmo en base 10
log10(100)
## [1] 2
# Especificar la base del logaritmo
log(10, base = 8)
## [1] 1.107309
# Exponencial
exp(1)
## [1] 2.718282

Notacion cientifica

# Número grande
10000000000000
## [1] 1e+13
# Número muy pequeño
0.000000000334
## [1] 3.34e-10
# Forzar notación científica
format(123456, scientific=TRUE)
## [1] "1.23456e+05"
# Suprimir notación científica
options(scipen = 999)
1000000000000
## [1] 1000000000000
# Restaurar
options(scipen = 0)
100000000000
## [1] 1e+11

Aplicaciones numericas, aritmetiica y asignacion

Asignacion

# Asignación
x<- 20
# Mostrar
x
## [1] 20
# o usar print()
print(x)
## [1] 20
# Metodo alternativo "="
y=30
y
## [1] 30
# Asignación hacia la derecha
40->z
z
## [1] 40
# Mostrar valor al asignar de manera inmediata
(w<-70)
## [1] 70

Palabras reservadas

Son palabras con un significado especial en el lenguaje que no se pueden usar como nombres de variables. Algunas de estas son: if, else, for, while, repeat,in,next,break,TRUE,FALSE,NULL,NA

?reserved
## starting httpd help server ... done

Gestion de workspace

# Listar todo lo que se tiene guardado
ls()
## [1] "w" "x" "y" "z"
# Obtener informacion (estructura) objeto
str(x)
##  num 20
# Eliminar objeto especificos
rm(y)
# Eliminar todo
rm(list = ls())

Vectores y escalares

Escalar

Es una cantidad que se describe completamente por su magnitud (un número real) y su unidad

# Asignar
edad<-20

Vector

Secuencia de datos, que tienen un mismo tipo de dato.

# Creacion de un vector
vector<-c(20,21,22,23,25)
vector
## [1] 20 21 22 23 25
# Creacion de un vector de caracteres
colores<-c("rojo","azul","verde")
colores
## [1] "rojo"  "azul"  "verde"
# 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(colores)
## [1] "character"
vector4<-c(40,"Hola",50)
vector4
## [1] "40"   "Hola" "50"
class(vector4)
## [1] "character"

Operador para secuencias

# Secuencias de datos (inicio:fin)
1:100
##   [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
# Secuencia descendente
15:-10
##  [1]  15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0  -1  -2  -3
## [20]  -4  -5  -6  -7  -8  -9 -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

Utilizando la funcion seq

# 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 numero de elemento
seq(from=0,to=10,length.out=40)
##  [1]  0.0000000  0.2564103  0.5128205  0.7692308  1.0256410  1.2820513
##  [7]  1.5384615  1.7948718  2.0512821  2.3076923  2.5641026  2.8205128
## [13]  3.0769231  3.3333333  3.5897436  3.8461538  4.1025641  4.3589744
## [19]  4.6153846  4.8717949  5.1282051  5.3846154  5.6410256  5.8974359
## [25]  6.1538462  6.4102564  6.6666667  6.9230769  7.1794872  7.4358974
## [31]  7.6923077  7.9487179  8.2051282  8.4615385  8.7179487  8.9743590
## [37]  9.2307692  9.4871795  9.7435897 10.0000000
# Generar secuencia de manera descendente
seq(from=10, to=0, by=-0.5)
##  [1] 10.0  9.5  9.0  8.5  8.0  7.5  7.0  6.5  6.0  5.5  5.0  4.5  4.0  3.5  3.0
## [16]  2.5  2.0  1.5  1.0  0.5  0.0

Funcion de repeticion

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

Indexacion

# Longitud de un vector
length(vector)
## [1] 5
# Extraer un elemento
vector5<-c(13,21,12,16,38,40,26)
# Extraer el elemento de la posicion 1
vector5[1]
## [1] 13
# Extraer el tercer elemento
vector5[3]
## [1] 12
# Extraer secuencia de elementos desde 2 hasta 4
vector5[2:4]
## [1] 21 12 16
# Extraer el 1, 3er y ultimo elemento
vector5[c(1,3,7)]
## [1] 13 12 26
# Extraer en orden inverso
vector5[-5]
## [1] 13 21 12 16 40 26

Matrices y arreglos

# 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:24,nrow = 6,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
## [5,]   17   18   19   20
## [6,]   21   22   23   24

Funciones basicas

# Dimensiones
dim(mi_matriz)
## [1] 6 4
# numero de filas
nrow(mi_matriz)
## [1] 6
# numero de columnas
ncol(mi_matriz)
## [1] 4
# Indexacion
matriz13<-matrix(1:16,nrow = 4,byrow = TRUE)
matriz13
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## [4,]   13   14   15   16
# Extraer el 7
matriz13[2,3]
## [1] 7
# Extraer el 16
matriz13[4,4]
## [1] 16

Broadcasting (operaciones)

matriz13+10
##      [,1] [,2] [,3] [,4]
## [1,]   11   12   13   14
## [2,]   15   16   17   18
## [3,]   19   20   21   22
## [4,]   23   24   25   26
matriz13**2
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    9   16
## [2,]   25   36   49   64
## [3,]   81  100  121  144
## [4,]  169  196  225  256
# Multiplicacion matricial
matriz2<-matrix(30:45, nrow = 4)
matriz2
##      [,1] [,2] [,3] [,4]
## [1,]   30   34   38   42
## [2,]   31   35   39   43
## [3,]   32   36   40   44
## [4,]   33   37   41   45
matriz13%*%matriz2
##      [,1] [,2] [,3] [,4]
## [1,]  320  360  400  440
## [2,]  824  928 1032 1136
## [3,] 1328 1496 1664 1832
## [4,] 1832 2064 2296 2528

Data frame

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
datos<-read.csv2("https://raw.githubusercontent.com/VictorGuevaraP/Multivariado_Analisis/refs/heads/master/Marketing.csv")

head(datos)
##     Edad    Genero  Vivienda  Ecivil Ubicacion Salario Hijos Historial
## 1  Media  Femenino Alquilada  Casado     Cerca   66900     2     Medio
## 2  Joven Masculino Alquilada Soltero     Cerca   21700     1      <NA>
## 3 Adulta  Femenino Alquilada  Casado     Cerca   39700     0     Medio
## 4  Media Masculino Alquilada  Casado     Lejos   72200     1      Alto
## 5  Media  Femenino Alquilada  Casado     Cerca   87700     3      <NA>
## 6  Media Masculino    Propia  Casado     Cerca  104100     0      Alto
##   Catalogos Monto
## 1        12   769
## 2        18   774
## 3        12   573
## 4        12  2082
## 5        24  2446
## 6        24  2636