library(markdown)
library(insuranceData)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(skimr)
library(tidyr)
AMXB <- read.csv('AMXB.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)
AMXB %>% summarise_all(~sum(is.na(.)))
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 0 0 0 0 0 0 0
#para conocer la estructura del data frame
str(AMXB)
## 'data.frame': 2766 obs. of 7 variables:
## $ Fecha : chr "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
## $ Cierre : num 14.9 14.6 14.8 14.7 14.3 ...
## $ Apertura: num 14.7 14.8 14.7 14.4 14.3 ...
## $ Máximo : num 15.1 14.8 14.9 14.7 14.4 ...
## $ Mínimo : num 14.7 14.6 14.5 14.2 14.1 ...
## $ Vol. : chr "17.98M" "29.30M" "35.59M" "29.85M" ...
## $ X..var. : chr "2.19%" "-1.01%" "0.82%" "2.30%" ...
summary(AMXB) #vista preliminar de las medidas de tendencia basicas de la base de datos
## Fecha Cierre Apertura Máximo
## Length:2766 Min. :10.75 Min. :10.70 Min. :10.80
## Class :character 1st Qu.:14.07 1st Qu.:14.10 1st Qu.:14.24
## Mode :character Median :15.43 Median :15.41 Median :15.59
## Mean :15.56 Mean :15.56 Mean :15.73
## 3rd Qu.:16.63 3rd Qu.:16.61 3rd Qu.:16.76
## Max. :22.25 Max. :22.28 Max. :22.49
## Mínimo Vol. X..var.
## Min. :10.40 Length:2766 Length:2766
## 1st Qu.:13.91 Class :character Class :character
## Median :15.25 Mode :character Mode :character
## Mean :15.38
## 3rd Qu.:16.44
## Max. :22.11
skim(AMXB) #resumen mas detallado (histograma, missing values)
Data summary
| Name |
AMXB |
| Number of rows |
2766 |
| Number of columns |
7 |
| _______________________ |
|
| Column type frequency: |
|
| character |
3 |
| numeric |
4 |
| ________________________ |
|
| Group variables |
None |
Variable type: character
| Fecha |
0 |
1 |
10 |
10 |
0 |
2766 |
0 |
| Vol. |
0 |
1 |
5 |
7 |
0 |
2385 |
0 |
| X..var. |
0 |
1 |
5 |
7 |
0 |
658 |
0 |
Variable type: numeric
| Cierre |
0 |
1 |
15.56 |
2.25 |
10.75 |
14.07 |
15.43 |
16.63 |
22.25 |
▂▇▇▃▁ |
| Apertura |
0 |
1 |
15.56 |
2.25 |
10.70 |
14.10 |
15.41 |
16.61 |
22.28 |
▂▇▇▃▁ |
| Máximo |
0 |
1 |
15.73 |
2.27 |
10.80 |
14.24 |
15.59 |
16.76 |
22.49 |
▂▇▇▃▁ |
| Mínimo |
0 |
1 |
15.38 |
2.23 |
10.40 |
13.91 |
15.25 |
16.44 |
22.11 |
▂▇▇▃▁ |
head(AMXB) #encabezado, primeras 6 filas
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 31.12.2024 14.95 14.70 15.05 14.69 17.98M 2.19%
## 2 30.12.2024 14.63 14.77 14.82 14.61 29.30M -1.01%
## 3 27.12.2024 14.78 14.65 14.93 14.54 35.59M 0.82%
## 4 26.12.2024 14.66 14.37 14.70 14.23 29.85M 2.30%
## 5 24.12.2024 14.33 14.28 14.37 14.09 11.10M 0.84%
## 6 23.12.2024 14.21 14.37 14.47 14.09 26.17M -0.98%
tail(AMXB) #ultimos valores
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 2761 09.01.2014 14.31 14.49 14.49 14.17 59.99M -0.97%
## 2762 08.01.2014 14.45 14.74 14.74 14.37 62.84M -1.57%
## 2763 07.01.2014 14.68 14.85 14.88 14.64 44.86M -0.68%
## 2764 06.01.2014 14.78 14.92 15.00 14.71 55.37M -0.81%
## 2765 03.01.2014 14.90 14.94 14.94 14.70 59.66M 0.07%
## 2766 02.01.2014 14.89 15.20 15.31 14.71 48.44M -2.17%
dim(AMXB) #dimension del data frame
## [1] 2766 7
glimpse(AMXB) #como esta definida cada variable, valores que puede obtener. Conocer la definicion de las variables. (opcion a str) esta en dplyr
## Rows: 2,766
## Columns: 7
## $ Fecha <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre <dbl> 14.95, 14.63, 14.78, 14.66, 14.33, 14.21, 14.35, 14.54, 14.67…
## $ Apertura <dbl> 14.70, 14.77, 14.65, 14.37, 14.28, 14.37, 14.52, 14.75, 15.02…
## $ Máximo <dbl> 15.05, 14.82, 14.93, 14.70, 14.37, 14.47, 14.53, 14.95, 15.07…
## $ Mínimo <dbl> 14.69, 14.61, 14.54, 14.23, 14.09, 14.09, 14.20, 14.49, 14.63…
## $ Vol. <chr> "17.98M", "29.30M", "35.59M", "29.85M", "11.10M", "26.17M", "…
## $ X..var. <chr> "2.19%", "-1.01%", "0.82%", "2.30%", "0.84%", "-0.98%", "-1.3…
AMXB <- read.csv('AMXB.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)
AMXB %>% summarise_all(~sum(is.na(.)))
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 0 0 0 0 0 0 0
################################################################################
WALMEX <- read.csv('WALMEX.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)
WALMEX %>% summarise_all(~sum(is.na(.)))
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 0 0 0 0 0 0 0
str(WALMEX)
## 'data.frame': 2766 obs. of 7 variables:
## $ Fecha : chr "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
## $ Cierre : num 54.9 54 55 55.9 56.2 ...
## $ Apertura: num 54 55.3 55.9 56.1 56.5 ...
## $ Máximo : num 56.4 55.3 56.7 56.6 57 ...
## $ Mínimo : num 54 53.8 54.9 55.5 56 ...
## $ Vol. : chr "7.10M" "7.85M" "7.30M" "4.38M" ...
## $ X..var. : chr "1.59%" "-1.80%" "-1.61%" "-0.46%" ...
summary(WALMEX)
## Fecha Cierre Apertura Máximo
## Length:2766 Min. :28.06 Min. :27.75 Min. :28.19
## Class :character 1st Qu.:41.99 1st Qu.:41.99 1st Qu.:42.34
## Mode :character Median :54.12 Median :54.12 Median :54.80
## Mean :53.31 Mean :53.32 Mean :53.94
## 3rd Qu.:65.56 3rd Qu.:65.52 3rd Qu.:66.28
## Max. :81.92 Max. :82.00 Max. :82.93
## Mínimo Vol. X..var.
## Min. :27.71 Length:2766 Length:2766
## 1st Qu.:41.58 Class :character Class :character
## Median :53.44 Mode :character Mode :character
## Mean :52.68
## 3rd Qu.:64.67
## Max. :79.68
skim(WALMEX)
Data summary
| Name |
WALMEX |
| Number of rows |
2766 |
| Number of columns |
7 |
| _______________________ |
|
| Column type frequency: |
|
| character |
3 |
| numeric |
4 |
| ________________________ |
|
| Group variables |
None |
Variable type: character
| Fecha |
0 |
1 |
10 |
10 |
0 |
2766 |
0 |
| Vol. |
0 |
1 |
0 |
7 |
1 |
1723 |
0 |
| X..var. |
0 |
1 |
5 |
6 |
0 |
680 |
0 |
Variable type: numeric
| Cierre |
0 |
1 |
53.31 |
13.43 |
28.06 |
41.99 |
54.12 |
65.56 |
81.92 |
▅▇▇▆▃ |
| Apertura |
0 |
1 |
53.32 |
13.43 |
27.75 |
41.99 |
54.12 |
65.52 |
82.00 |
▅▇▇▆▃ |
| Máximo |
0 |
1 |
53.94 |
13.63 |
28.19 |
42.34 |
54.80 |
66.28 |
82.93 |
▅▇▇▆▃ |
| Mínimo |
0 |
1 |
52.68 |
13.24 |
27.71 |
41.58 |
53.44 |
64.67 |
79.68 |
▅▇▇▆▅ |
head(WALMEX)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 31.12.2024 54.89 54.03 56.35 54.02 7.10M 1.59%
## 2 30.12.2024 54.03 55.29 55.30 53.83 7.85M -1.80%
## 3 27.12.2024 55.02 55.92 56.69 54.91 7.30M -1.61%
## 4 26.12.2024 55.92 56.10 56.59 55.51 4.38M -0.46%
## 5 24.12.2024 56.18 56.50 56.98 56.02 1.24M -0.21%
## 6 23.12.2024 56.30 57.11 57.49 55.31 5.75M -1.85%
tail(WALMEX)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 2761 09.01.2014 33.24 33.15 33.32 32.37 25.92M 1.06%
## 2762 08.01.2014 32.89 33.44 33.57 32.86 17.93M -1.47%
## 2763 07.01.2014 33.38 32.93 33.55 32.81 19.10M 1.61%
## 2764 06.01.2014 32.85 33.58 33.59 32.60 10.16M -1.20%
## 2765 03.01.2014 33.25 33.51 33.59 33.16 8.76M -0.51%
## 2766 02.01.2014 33.42 34.29 34.39 33.19 12.90M -2.45%
dim(WALMEX)
## [1] 2766 7
glimpse(WALMEX)
## Rows: 2,766
## Columns: 7
## $ Fecha <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre <dbl> 54.89, 54.03, 55.02, 55.92, 56.18, 56.30, 57.36, 58.03, 58.33…
## $ Apertura <dbl> 54.03, 55.29, 55.92, 56.10, 56.50, 57.11, 57.72, 58.10, 57.45…
## $ Máximo <dbl> 56.35, 55.30, 56.69, 56.59, 56.98, 57.49, 58.28, 58.59, 59.24…
## $ Mínimo <dbl> 54.02, 53.83, 54.91, 55.51, 56.02, 55.31, 57.08, 57.71, 57.07…
## $ Vol. <chr> "7.10M", "7.85M", "7.30M", "4.38M", "1.24M", "5.75M", "51.46M…
## $ X..var. <chr> "1.59%", "-1.80%", "-1.61%", "-0.46%", "-0.21%", "-1.85%", "-…
################################################################################
BIMBOA <- read.csv('BIMBOA.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)
BIMBOA %>% summarise_all(~sum(is.na(.)))
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 0 0 0 0 0 0 0
str(BIMBOA)
## 'data.frame': 2766 obs. of 7 variables:
## $ Fecha : chr "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
## $ Cierre : num 55.2 54.2 54.8 55.1 55.5 ...
## $ Apertura: num 54.1 55 55.3 55 55.8 ...
## $ Máximo : num 55.5 55.4 56.4 55.8 56 ...
## $ Mínimo : num 54.1 54.1 54.6 54.6 55.2 ...
## $ Vol. : chr "1.12M" "1.11M" "1.33M" "533.49K" ...
## $ X..var. : chr "1.88%" "-0.97%" "-0.58%" "-0.72%" ...
summary(BIMBOA)
## Fecha Cierre Apertura Máximo
## Length:2766 Min. :26.95 Min. :27.40 Min. : 28.60
## Class :character 1st Qu.:39.78 1st Qu.:39.80 1st Qu.: 40.33
## Mode :character Median :44.42 Median :44.41 Median : 44.97
## Mean :51.61 Mean :51.62 Mean : 52.38
## 3rd Qu.:61.13 3rd Qu.:61.03 3rd Qu.: 62.59
## Max. :98.96 Max. :99.13 Max. :103.41
## Mínimo Vol. X..var.
## Min. :26.00 Length:2766 Length:2766
## 1st Qu.:39.28 Class :character Class :character
## Median :43.84 Mode :character Mode :character
## Mean :50.89
## 3rd Qu.:60.00
## Max. :97.91
skim(BIMBOA)
Data summary
| Name |
BIMBOA |
| Number of rows |
2766 |
| Number of columns |
7 |
| _______________________ |
|
| Column type frequency: |
|
| character |
3 |
| numeric |
4 |
| ________________________ |
|
| Group variables |
None |
Variable type: character
| Fecha |
0 |
1 |
10 |
10 |
0 |
2766 |
0 |
| Vol. |
0 |
1 |
0 |
7 |
1 |
791 |
0 |
| X..var. |
0 |
1 |
5 |
7 |
0 |
768 |
0 |
Variable type: numeric
| Cierre |
0 |
1 |
51.61 |
16.55 |
26.95 |
39.78 |
44.42 |
61.13 |
98.96 |
▇▇▃▂▂ |
| Apertura |
0 |
1 |
51.62 |
16.57 |
27.40 |
39.80 |
44.41 |
61.03 |
99.13 |
▇▇▃▂▂ |
| Máximo |
0 |
1 |
52.38 |
16.83 |
28.60 |
40.33 |
44.97 |
62.59 |
103.41 |
▇▆▂▂▁ |
| Mínimo |
0 |
1 |
50.89 |
16.32 |
26.00 |
39.28 |
43.84 |
60.00 |
97.91 |
▆▇▃▂▂ |
head(BIMBOA)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 31.12.2024 55.24 54.06 55.49 54.06 1.12M 1.88%
## 2 30.12.2024 54.22 54.97 55.39 54.06 1.11M -0.97%
## 3 27.12.2024 54.75 55.29 56.35 54.62 1.33M -0.58%
## 4 26.12.2024 55.07 55.00 55.83 54.59 533.49K -0.72%
## 5 24.12.2024 55.47 55.81 55.98 55.20 292.85K -0.70%
## 6 23.12.2024 55.86 55.74 56.57 55.50 969.34K 0.70%
tail(BIMBOA)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 2761 09.01.2014 36.26 37.24 37.47 36.18 4.54M -2.13%
## 2762 08.01.2014 37.05 38.01 38.33 37.00 5.17M -2.99%
## 2763 07.01.2014 38.19 38.50 38.73 38.02 2.40M -1.14%
## 2764 06.01.2014 38.63 38.60 39.18 38.50 1.92M 0.10%
## 2765 03.01.2014 38.59 39.00 39.03 38.11 2.11M -0.95%
## 2766 02.01.2014 38.96 40.00 40.35 38.69 1.47M -3.08%
dim(BIMBOA)
## [1] 2766 7
glimpse(BIMBOA)
## Rows: 2,766
## Columns: 7
## $ Fecha <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre <dbl> 55.24, 54.22, 54.75, 55.07, 55.47, 55.86, 55.47, 55.64, 55.89…
## $ Apertura <dbl> 54.06, 54.97, 55.29, 55.00, 55.81, 55.74, 55.75, 56.16, 56.34…
## $ Máximo <dbl> 55.49, 55.39, 56.35, 55.83, 55.98, 56.57, 56.40, 56.50, 56.94…
## $ Mínimo <dbl> 54.06, 54.06, 54.62, 54.59, 55.20, 55.50, 54.80, 55.57, 55.60…
## $ Vol. <chr> "1.12M", "1.11M", "1.33M", "533.49K", "292.85K", "969.34K", "…
## $ X..var. <chr> "1.88%", "-0.97%", "-0.58%", "-0.72%", "-0.70%", "0.70%", "-0…
################################################################################
CEMEXCPO <- read.csv('CEMEXCPO.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)
CEMEXCPO %>% summarise_all(~sum(is.na(.)))
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 0 0 0 0 0 0 0
str(CEMEXCPO)
## 'data.frame': 2766 obs. of 7 variables:
## $ Fecha : chr "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
## $ Cierre : num 11.7 11.4 11.5 11.5 11.3 ...
## $ Apertura: num 11.4 11.5 11.4 11.3 11.2 ...
## $ Máximo : num 11.8 11.5 11.6 11.6 11.4 ...
## $ Mínimo : num 11.4 11.2 11.4 11.2 11.2 ...
## $ Vol. : chr "21.82M" "35.20M" "16.26M" "12.94M" ...
## $ X..var. : chr "2.73%" "-0.96%" "0.17%" "1.15%" ...
summary(CEMEXCPO)
## Fecha Cierre Apertura Máximo
## Length:2766 Min. : 4.210 Min. : 4.240 Min. : 4.45
## Class :character 1st Qu.: 9.283 1st Qu.: 9.285 1st Qu.: 9.46
## Mode :character Median :12.245 Median :12.270 Median :12.45
## Mean :11.990 Mean :11.999 Mean :12.17
## 3rd Qu.:14.710 3rd Qu.:14.707 3rd Qu.:14.92
## Max. :19.115 Max. :19.038 Max. :19.27
## Mínimo Vol. X..var.
## Min. : 3.98 Length:2766 Length:2766
## 1st Qu.: 9.16 Class :character Class :character
## Median :12.06 Mode :character Mode :character
## Mean :11.82
## 3rd Qu.:14.52
## Max. :18.58
skim(CEMEXCPO)
Data summary
| Name |
CEMEXCPO |
| Number of rows |
2766 |
| Number of columns |
7 |
| _______________________ |
|
| Column type frequency: |
|
| character |
3 |
| numeric |
4 |
| ________________________ |
|
| Group variables |
None |
Variable type: character
| Fecha |
0 |
1 |
10 |
10 |
0 |
2766 |
0 |
| Vol. |
0 |
1 |
5 |
7 |
0 |
2254 |
0 |
| X..var. |
0 |
1 |
5 |
6 |
0 |
854 |
0 |
Variable type: numeric
| Cierre |
0 |
1 |
11.99 |
3.22 |
4.21 |
9.28 |
12.25 |
14.71 |
19.11 |
▂▆▇▇▂ |
| Apertura |
0 |
1 |
12.00 |
3.22 |
4.24 |
9.28 |
12.27 |
14.71 |
19.04 |
▂▆▇▇▃ |
| Máximo |
0 |
1 |
12.17 |
3.24 |
4.45 |
9.46 |
12.45 |
14.92 |
19.27 |
▂▆▇▇▂ |
| Mínimo |
0 |
1 |
11.82 |
3.20 |
3.98 |
9.16 |
12.06 |
14.52 |
18.58 |
▂▆▇▇▃ |
head(CEMEXCPO)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 31.12.2024 11.68 11.43 11.76 11.43 21.82M 2.73%
## 2 30.12.2024 11.37 11.48 11.48 11.25 35.20M -0.96%
## 3 27.12.2024 11.48 11.40 11.59 11.37 16.26M 0.17%
## 4 26.12.2024 11.46 11.35 11.56 11.22 12.94M 1.15%
## 5 24.12.2024 11.33 11.20 11.37 11.19 2.74M 1.16%
## 6 23.12.2024 11.20 11.34 11.45 11.14 16.92M -0.88%
tail(CEMEXCPO)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 2761 09.01.2014 14.691 14.146 14.728 14.146 65.59M 3.31%
## 2762 08.01.2014 14.220 14.016 14.358 13.979 46.39M 1.39%
## 2763 07.01.2014 14.025 13.961 14.294 13.961 39.11M 0.00%
## 2764 06.01.2014 14.025 13.989 14.127 13.924 32.89M 0.46%
## 2765 03.01.2014 13.961 13.961 14.072 13.831 19.52M -0.06%
## 2766 02.01.2014 13.970 14.155 14.183 13.878 25.49M -1.50%
dim(CEMEXCPO)
## [1] 2766 7
glimpse(CEMEXCPO)
## Rows: 2,766
## Columns: 7
## $ Fecha <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre <dbl> 11.68, 11.37, 11.48, 11.46, 11.33, 11.20, 11.30, 11.34, 11.33…
## $ Apertura <dbl> 11.43, 11.48, 11.40, 11.35, 11.20, 11.34, 11.29, 11.26, 11.21…
## $ Máximo <dbl> 11.76, 11.48, 11.59, 11.56, 11.37, 11.45, 11.58, 11.44, 11.40…
## $ Mínimo <dbl> 11.43, 11.25, 11.37, 11.22, 11.19, 11.14, 11.17, 11.17, 11.16…
## $ Vol. <chr> "21.82M", "35.20M", "16.26M", "12.94M", "2.74M", "16.92M", "2…
## $ X..var. <chr> "2.73%", "-0.96%", "0.17%", "1.15%", "1.16%", "-0.88%", "-0.3…
################################################################################
AMXB <- AMXB %>% rename(CierreA = Cierre)
BIMBOA <- BIMBOA %>% rename(CierreB = Cierre)
WALMEX <- WALMEX %>% rename(CierreW = Cierre)
CEMEXCPO <- CEMEXCPO %>% rename(CierreC = Cierre)
################################################################################
Cierre_Acc <- bind_cols(select(AMXB, Fecha, CierreA), select(BIMBOA, CierreB),
select(CEMEXCPO, CierreC), select(WALMEX, CierreW))
str(Cierre_Acc)
## 'data.frame': 2766 obs. of 5 variables:
## $ Fecha : chr "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
## $ CierreA: num 14.9 14.6 14.8 14.7 14.3 ...
## $ CierreB: num 55.2 54.2 54.8 55.1 55.5 ...
## $ CierreC: num 11.7 11.4 11.5 11.5 11.3 ...
## $ CierreW: num 54.9 54 55 55.9 56.2 ...
Cierre_Acc$Fecha <- as.Date(Cierre_Acc$Fecha, format = "%d.%m.%Y")
################################################################################
library(ggplot2)
library(readr)
# Ordenar por fecha
Cierre_Acc <- Cierre_Acc %>% arrange(Fecha)
Grafica_Cierre_Acc <- Cierre_Acc %>%
pivot_longer(-Fecha, names_to = "Accion", values_to = "Precio")
# Graficar (solo línea, sin puntos)
ggplot(Grafica_Cierre_Acc, aes(x = Fecha, y = Precio)) +
geom_line(color = "blue") + # Línea azul
labs(title = "Evolución del Cierre Acciones", x = "Fecha", y = "Precio") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))

################################################################################
################################################################################
################################################################################
EEM <- read.csv('EEM.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)
EEM %>% summarise_all(~sum(is.na(.)))
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 0 0 0 0 0 0 0
str(EEM)
## 'data.frame': 2799 obs. of 7 variables:
## $ Fecha : chr "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
## $ Cierre : num 41.8 42 42.3 42.5 42.6 ...
## $ Apertura: num 41.9 42 42.2 42.4 42.5 ...
## $ Máximo : num 42 42.1 42.3 42.6 42.7 ...
## $ Mínimo : num 41.8 41.8 42.1 42.3 42.5 ...
## $ Vol. : chr "40.52M" "25.06M" "22.67M" "16.15M" ...
## $ X..var. : chr "-0.33%" "-0.80%" "-0.45%" "-0.35%" ...
summary(EEM)
## Fecha Cierre Apertura Máximo
## Length:2799 Min. :28.08 Min. :28.00 Min. :28.29
## Class :character 1st Qu.:38.77 1st Qu.:38.81 1st Qu.:38.98
## Mode :character Median :41.25 Median :41.21 Median :41.42
## Mean :41.81 Mean :41.81 Mean :42.01
## 3rd Qu.:44.30 3rd Qu.:44.35 3rd Qu.:44.51
## Max. :57.96 Max. :58.13 Max. :58.29
## Mínimo Vol. X..var.
## Min. :27.44 Length:2799 Length:2799
## 1st Qu.:38.54 Class :character Class :character
## Median :41.01 Mode :character Mode :character
## Mean :41.58
## 3rd Qu.:44.16
## Max. :57.78
skim(EEM)
Data summary
| Name |
EEM |
| Number of rows |
2799 |
| Number of columns |
7 |
| _______________________ |
|
| Column type frequency: |
|
| character |
3 |
| numeric |
4 |
| ________________________ |
|
| Group variables |
None |
Variable type: character
| Fecha |
0 |
1 |
10 |
10 |
0 |
2799 |
0 |
| Vol. |
0 |
1 |
0 |
7 |
31 |
2313 |
0 |
| X..var. |
0 |
1 |
5 |
7 |
0 |
570 |
0 |
Variable type: numeric
| Cierre |
0 |
1 |
41.81 |
5.35 |
28.08 |
38.76 |
41.25 |
44.30 |
57.96 |
▁▆▇▂▁ |
| Apertura |
0 |
1 |
41.81 |
5.35 |
28.00 |
38.81 |
41.21 |
44.36 |
58.13 |
▁▆▇▂▁ |
| Máximo |
0 |
1 |
42.01 |
5.35 |
28.29 |
38.98 |
41.42 |
44.51 |
58.29 |
▁▆▇▂▁ |
| Mínimo |
0 |
1 |
41.58 |
5.34 |
27.44 |
38.54 |
41.01 |
44.16 |
57.78 |
▁▆▇▂▁ |
head(EEM)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 31.12.2024 41.82 41.94 42.04 41.78 40.52M -0.33%
## 2 30.12.2024 41.96 42.04 42.09 41.84 25.06M -0.80%
## 3 27.12.2024 42.30 42.23 42.33 42.11 22.67M -0.45%
## 4 26.12.2024 42.49 42.36 42.58 42.34 16.15M -0.35%
## 5 24.12.2024 42.64 42.51 42.67 42.46 7.07M 0.31%
## 6 23.12.2024 42.51 42.28 42.55 42.21 17.96M 0.57%
tail(EEM)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 2794 09.01.2014 39.33 39.41 39.48 39.02 74.41M -0.53%
## 2795 08.01.2014 39.54 39.73 39.77 39.42 63.18M -0.33%
## 2796 07.01.2014 39.67 39.71 39.85 39.55 57.34M 0.43%
## 2797 06.01.2014 39.50 39.72 39.72 39.49 55.74M -0.95%
## 2798 03.01.2014 39.88 40.15 40.16 39.70 83.58M -0.18%
## 2799 02.01.2014 39.95 40.75 40.76 39.91 138.49M -3.83%
dim(EEM)
## [1] 2799 7
glimpse(EEM)
## Rows: 2,799
## Columns: 7
## $ Fecha <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre <dbl> 41.82, 41.96, 42.30, 42.49, 42.64, 42.51, 42.27, 42.10, 41.96…
## $ Apertura <dbl> 41.94, 42.04, 42.23, 42.36, 42.51, 42.28, 41.96, 42.37, 42.90…
## $ Máximo <dbl> 42.04, 42.09, 42.33, 42.58, 42.67, 42.55, 42.49, 42.41, 43.01…
## $ Mínimo <dbl> 41.78, 41.84, 42.11, 42.34, 42.46, 42.21, 41.92, 42.10, 41.88…
## $ Vol. <chr> "40.52M", "25.06M", "22.67M", "16.15M", "7.07M", "17.96M", "2…
## $ X..var. <chr> "-0.33%", "-0.80%", "-0.45%", "-0.35%", "0.31%", "0.57%", "0.…
################################################################################
EWW <- read.csv('EWW.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)
EWW %>% summarise_all(~sum(is.na(.)))
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 0 0 0 0 0 0 0
str(EWW)
## 'data.frame': 903 obs. of 7 variables:
## $ Fecha : chr "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
## $ Cierre : chr "957.63" "972.68" "976.42" "976.96" ...
## $ Apertura: chr "957.63" "972.68" "976.42" "976.96" ...
## $ Máximo : chr "957.63" "972.68" "976.42" "976.96" ...
## $ Mínimo : chr "957.63" "972.68" "976.42" "976.96" ...
## $ Vol. : chr "" "" "" "" ...
## $ X..var. : chr "-1.55%" "-0.38%" "-0.06%" "0.24%" ...
summary(EWW)
## Fecha Cierre Apertura Máximo
## Length:903 Length:903 Length:903 Length:903
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
## Mínimo Vol. X..var.
## Length:903 Length:903 Length:903
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
skim(EWW)
Data summary
| Name |
EWW |
| Number of rows |
903 |
| Number of columns |
7 |
| _______________________ |
|
| Column type frequency: |
|
| character |
7 |
| ________________________ |
|
| Group variables |
None |
Variable type: character
| Fecha |
0 |
1 |
10 |
10 |
0 |
903 |
0 |
| Cierre |
0 |
1 |
6 |
8 |
0 |
833 |
0 |
| Apertura |
0 |
1 |
6 |
8 |
0 |
828 |
0 |
| Máximo |
0 |
1 |
6 |
8 |
0 |
829 |
0 |
| Mínimo |
0 |
1 |
6 |
8 |
0 |
830 |
0 |
| Vol. |
0 |
1 |
0 |
7 |
281 |
266 |
0 |
| X..var. |
0 |
1 |
5 |
6 |
0 |
406 |
0 |
head(EWW)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 31.12.2024 957.63 957.63 957.63 957.63 -1.55%
## 2 30.12.2024 972.68 972.68 972.68 972.68 -0.38%
## 3 27.12.2024 976.42 976.42 976.42 976.42 -0.06%
## 4 26.12.2024 976.96 976.96 976.96 976.96 0.24%
## 5 24.12.2024 974.60 974.60 974.60 974.60 -0.04%
## 6 23.12.2024 975.00 975.00 975.00 975.00 0.05K -0.54%
tail(EWW)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 898 08.05.2019 852.84 851.36 851.36 848.37 37.78K -1.25%
## 899 07.05.2019 863.61 849.37 849.37 848.37 16.65K -0.66%
## 900 15.04.2019 869.37 871.28 871.28 871.28 0.01K -0.61%
## 901 08.04.2019 874.73 886.56 886.56 886.56 1.06K 3.46%
## 902 03.04.2019 845.49 849.27 849.27 849.27 0.90K -0.16%
## 903 22.03.2019 846.82 846.20 846.20 846.20 0.03K 2.79%
dim(EWW)
## [1] 903 7
glimpse(EWW)
## Rows: 903
## Columns: 7
## $ Fecha <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre <chr> "957.63", "972.68", "976.42", "976.96", "974.60", "975.00", "…
## $ Apertura <chr> "957.63", "972.68", "976.42", "976.96", "974.60", "975.00", "…
## $ Máximo <chr> "957.63", "972.68", "976.42", "976.96", "974.60", "975.00", "…
## $ Mínimo <chr> "957.63", "972.68", "976.42", "976.96", "974.60", "975.00", "…
## $ Vol. <chr> "", "", "", "", "", "0.05K", "0.00K", "5.15K", "", "1.19K", "…
## $ X..var. <chr> "-1.55%", "-0.38%", "-0.06%", "0.24%", "-0.04%", "-0.54%", "-…
################################################################################
SPY <- read.csv('SPY.csv', na.strings = c("null","**"), stringsAsFactors = FALSE)
SPY %>% summarise_all(~sum(is.na(.)))
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 0 0 0 0 0 0 0
str(SPY)
## 'data.frame': 2773 obs. of 7 variables:
## $ Fecha : chr "31.12.2024" "30.12.2024" "27.12.2024" "26.12.2024" ...
## $ Cierre : num 586 588 595 601 601 ...
## $ Apertura: num 590 588 598 600 596 ...
## $ Máximo : num 591 592 598 602 601 ...
## $ Mínimo : num 584 584 591 598 595 ...
## $ Vol. : chr "57.05M" "56.58M" "64.97M" "41.34M" ...
## $ X..var. : chr "-0.36%" "-1.14%" "-1.05%" "0.01%" ...
summary(SPY)
## Fecha Cierre Apertura Máximo
## Length:2773 Min. :174.2 Min. :174.8 Min. :175.6
## Class :character 1st Qu.:216.8 1st Qu.:217.0 1st Qu.:217.3
## Mode :character Median :289.0 Median :289.4 Median :290.4
## Mean :322.3 Mean :322.3 Mean :324.0
## 3rd Qu.:413.8 3rd Qu.:413.4 3rd Qu.:416.1
## Max. :607.8 Max. :607.7 Max. :609.1
## Mínimo Vol. X..var.
## Min. :173.7 Length:2773 Length:2773
## 1st Qu.:216.0 Class :character Class :character
## Median :287.7 Mode :character Mode :character
## Mean :320.4
## 3rd Qu.:411.1
## Max. :607.0
skim(SPY)
Data summary
| Name |
SPY |
| Number of rows |
2773 |
| Number of columns |
7 |
| _______________________ |
|
| Column type frequency: |
|
| character |
3 |
| numeric |
4 |
| ________________________ |
|
| Group variables |
None |
Variable type: character
| Fecha |
0 |
1 |
10 |
10 |
0 |
2773 |
0 |
| Vol. |
0 |
1 |
0 |
7 |
5 |
2433 |
0 |
| X..var. |
0 |
1 |
5 |
7 |
0 |
499 |
0 |
Variable type: numeric
| Cierre |
0 |
1 |
322.33 |
110.72 |
174.17 |
216.77 |
288.97 |
413.81 |
607.81 |
▇▆▅▃▁ |
| Apertura |
0 |
1 |
322.29 |
110.72 |
174.78 |
216.97 |
289.40 |
413.42 |
607.69 |
▇▅▅▃▁ |
| Máximo |
0 |
1 |
324.00 |
111.28 |
175.56 |
217.27 |
290.42 |
416.06 |
609.07 |
▇▆▅▃▁ |
| Mínimo |
0 |
1 |
320.42 |
110.08 |
173.71 |
215.97 |
287.66 |
411.08 |
607.02 |
▇▅▅▃▁ |
head(SPY)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 1 31.12.2024 586.08 589.91 590.64 584.42 57.05M -0.36%
## 2 30.12.2024 588.22 587.89 591.74 584.41 56.58M -1.14%
## 3 27.12.2024 595.01 597.54 597.78 590.76 64.97M -1.05%
## 4 26.12.2024 601.34 599.50 602.48 598.08 41.34M 0.01%
## 5 24.12.2024 601.30 596.06 601.34 595.47 33.16M 1.11%
## 6 23.12.2024 594.69 590.89 595.30 587.66 57.64M 0.60%
tail(SPY)
## Fecha Cierre Apertura Máximo Mínimo Vol. X..var.
## 2768 09.01.2014 183.64 184.11 184.13 182.79 90.68M 0.07%
## 2769 08.01.2014 183.52 183.45 183.83 182.89 96.58M 0.02%
## 2770 07.01.2014 183.48 183.09 183.79 182.95 86.14M 0.61%
## 2771 06.01.2014 182.36 183.49 183.56 182.08 108.03M -0.28%
## 2772 03.01.2014 182.88 183.23 183.60 182.63 81.39M -0.02%
## 2773 02.01.2014 182.92 183.98 184.07 182.48 119.64M -0.96%
dim(SPY)
## [1] 2773 7
glimpse(SPY)
## Rows: 2,773
## Columns: 7
## $ Fecha <chr> "31.12.2024", "30.12.2024", "27.12.2024", "26.12.2024", "24.1…
## $ Cierre <dbl> 586.08, 588.22, 595.01, 601.34, 601.30, 594.69, 591.15, 586.1…
## $ Apertura <dbl> 589.91, 587.89, 597.54, 599.50, 596.06, 590.89, 581.77, 591.3…
## $ Máximo <dbl> 590.64, 591.74, 597.78, 602.48, 601.34, 595.30, 595.75, 593.0…
## $ Mínimo <dbl> 584.42, 584.41, 590.76, 598.08, 595.47, 587.66, 580.91, 585.8…
## $ Vol. <chr> "57.05M", "56.58M", "64.97M", "41.34M", "33.16M", "57.64M", "…
## $ X..var. <chr> "-0.36%", "-1.14%", "-1.05%", "0.01%", "1.11%", "0.60%", "0.8…
################################################################################
EEM <- EEM %>% rename(CierreEEM = Cierre)
EWW <- EWW %>% rename(CierreEWW = Cierre)
SPY <- SPY %>% rename(CierreSPY = Cierre)
################################################################################
nrow(EEM)
## [1] 2799
nrow(EWW)
## [1] 903
nrow(SPY)
## [1] 2773
# Ajustar para que tenga la misma cantidad de filas
EEM <- EEM %>% slice(1:nrow(EWW))
SPY <- SPY %>% slice(1:nrow(EWW))
Cierre_ETF <- bind_cols(select(EWW, Fecha, CierreEWW), select(EEM, CierreEEM),
select(SPY, CierreSPY))
Cierre_ETF$Fecha <- as.Date(Cierre_ETF$Fecha, format = "%d.%m.%Y")
################################################################################
# Ordenar por fecha
Cierre_ETF <- Cierre_ETF %>% arrange(Fecha)
Cierre_ETF <- Cierre_ETF %>%
mutate(across(-Fecha, as.numeric))
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `across(-Fecha, as.numeric)`.
## Caused by warning:
## ! NAs introduced by coercion
Grafica_Cierre_ETF <- Cierre_ETF %>%
pivot_longer(-Fecha, names_to = "Accion", values_to = "Precio")
# Graficar (solo línea, sin puntos)
ggplot(Grafica_Cierre_ETF, aes(x = Fecha, y = Precio)) +
geom_line(color = "red") + # Línea roja
labs(title = "Evolución del Cierre ETFs", x = "Fecha", y = "Precio") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
