-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscript.R
More file actions
119 lines (98 loc) · 4.11 KB
/
Copy pathscript.R
File metadata and controls
119 lines (98 loc) · 4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
library(tidyverse)
library(jsonlite)
library(lubridate)
library(glue)
library(stringr)
date <- Sys.Date()
date_long <- glue('{day(date)} de {month(date, label = T, abbr = F, locale = "pt_PT")} de {year(date)}')
data_daily <- fromJSON(glue('https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/PMD?dataIni=2000-01-01&dataFim={date}'))
data_daily <- data_daily[["resultado"]]
gasoleo <- data_daily %>%
filter(TipoCombustivel == 'Gasóleo simples') %>%
select(Data, PrecoMedio, PrecoMin, PrecoMax) %>%
arrange(Data) %>%
filter(Data > as.Date('2015-09-23')) %>%
mutate(PrecoMedio = gsub(' €','',PrecoMedio)) %>%
mutate(PrecoMedio = gsub(',','.',PrecoMedio)) %>%
mutate(PrecoMedio = as.numeric(PrecoMedio)) %>%
mutate(PrecoMin = gsub(' €','',PrecoMin)) %>%
mutate(PrecoMin = gsub(',','.',PrecoMin)) %>%
mutate(PrecoMin = as.numeric(PrecoMin)) %>%
mutate(PrecoMax = gsub(' €','',PrecoMax)) %>%
mutate(PrecoMax = gsub(',','.',PrecoMax)) %>%
mutate(PrecoMax = as.numeric(PrecoMax))
gasolina <- data_daily %>%
filter(TipoCombustivel == 'Gasolina simples 95') %>%
select(Data, PrecoMedio, PrecoMin, PrecoMax) %>%
arrange(Data) %>%
filter(Data > as.Date('2015-09-23')) %>%
mutate(PrecoMedio = gsub(' €','',PrecoMedio)) %>%
mutate(PrecoMedio = gsub(',','.',PrecoMedio)) %>%
mutate(PrecoMedio = as.numeric(PrecoMedio)) %>%
mutate(PrecoMin = gsub(' €','',PrecoMin)) %>%
mutate(PrecoMin = gsub(',','.',PrecoMin)) %>%
mutate(PrecoMin = as.numeric(PrecoMin)) %>%
mutate(PrecoMax = gsub(' €','',PrecoMax)) %>%
mutate(PrecoMax = gsub(',','.',PrecoMax)) %>%
mutate(PrecoMax = as.numeric(PrecoMax))
#GET POSTOS
postos <- fromJSON('https://precoscombustiveis.dgeg.gov.pt/api/PrecoComb/PesquisarPostos?idsTiposComb=&idMarca=&idTipoPosto=&idDistrito=&qtdPorPagina=99999')
postos <- postos[["resultado"]]
concelhosPre <- read_delim('concelhos-metadata.csv', delim = ';') %>%
select(designacao, pre, pre2, pre3) %>%
rename('Municipio' = 'designacao')
postos_gasolina <- postos %>%
filter(Combustivel == 'Gasolina simples 95') %>%
mutate(Preco = gsub(' €','',Preco)) %>%
mutate(Preco = gsub(',','.',Preco)) %>%
mutate(Preco = as.numeric(Preco)) %>%
mutate(Municipio = gsub('Guimares','Guimarães',Municipio)) %>%
mutate(Municipio = gsub('Lagoa','Lagoa (Faro)',Municipio)) %>%
mutate(Municipio = gsub('Melgao','Melgaço',Municipio)) %>%
select(Nome,Municipio, Preco, Morada, Localidade, Latitude,Longitude)
postos_gasoleo <- postos %>%
filter(Combustivel == 'Gasóleo simples') %>%
mutate(Preco = gsub(' €','',Preco)) %>%
mutate(Preco = gsub(',','.',Preco)) %>%
mutate(Preco = as.numeric(Preco)) %>%
mutate(Municipio = gsub('Guimares','Guimarães',Municipio)) %>%
mutate(Municipio = gsub('Lagoa','Lagoa (Faro)',Municipio)) %>%
mutate(Municipio = gsub('Melgao','Melgaço',Municipio)) %>%
select(Nome,Municipio, Preco,Morada, Localidade, Latitude,Longitude)
media_concelho_gasolina <- postos_gasolina %>%
group_by(Municipio) %>%
summarise(mean_gasolina = mean(Preco),
n_gasolina = n()) %>%
mutate(mean_gasolina = ifelse(n_gasolina == 1, NA, mean_gasolina))
media_concelho_gasoleo <- postos_gasoleo %>%
group_by(Municipio) %>%
summarise(mean_gasoleo = mean(Preco),
n_gasoleo = n()) %>%
mutate(mean_gasoleo = ifelse(n_gasoleo == 1, NA, mean_gasoleo))
concelhos <- postos_gasoleo %>%
left_join(concelhosPre) %>%
select(Municipio, pre, pre2, pre3) %>%
distinct() %>%
arrange(Municipio) %>%
mutate(value = Municipio,
label = Municipio) %>%
left_join(media_concelho_gasolina) %>%
left_join(media_concelho_gasoleo) %>%
mutate(mean_gasolina = round(mean_gasolina, 3)) %>%
mutate(mean_gasoleo = round(mean_gasoleo, 3)) %>%
select(-Municipio)
data <- list(
date_update = date_long,
date_update_robot = format(Sys.time(), "%a %b %d %Y %X GMT"),
date_today = date,
date_2years = (date -years(2)) -1,
gasoleo = gasoleo,
gasolina = gasolina,
concelhos = concelhos,
postos = list(
gasolina = postos_gasolina,
gasoleo = postos_gasoleo
)
)
data <- data %>% toJSON(pretty = FALSE, auto_unbox = TRUE, na = "null")
data %>% write('data.json')