library(readxl)
Mensagen de aviso:
In file.info(path, extra_cols = FALSE) :
não é possível abrir o arquivo 'C:/Users/thiago.gardin/AppData/Local/Microsoft/WindowsApps/PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0/python.exe': Não é possível o acesso ao arquivo pelo sistema
library(tidyverse)
Aviso: pacote ‘ggplot2’ foi compilado no R versão 4.4.3
Aviso: pacote ‘purrr’ foi compilado no R versão 4.4.3
── Attaching core tidyverse packages ────────────────────────────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.2 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.1
✔ purrr 1.0.4
── Conflicts ──────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(zoo)
Anexando pacote: ‘zoo’
Os seguintes objetos são mascarados por ‘package:base’:
as.Date, as.Date.numeric
prc_energia <- read_excel("Historico_do_Preco_Horario_-_17_de_abril_de_2018_a_3_de_junho_de_2025.xlsx")
prc_energia %>% gather("dia","Valor",-Hora,-Submercado) %>% mutate(dia=as.Date(as.integer(dia), origin = "1899-12-30")) ->p_ene
p_ene$Submercado %>% table
.
NORDESTE NORTE SUDESTE SUL
64825 64825 64825 64825
p_ene %>% #spread(Submercado,Valor)->p_ene
Erro: Incomplete expression: p_ene %>% #spread(Submercado,Valor)->p_ene
summary(p_ene)
Hora Submercado dia Valor
Length:264486 Length:264486 Min. :2018-04-17 Min. : 39.68
Class :character Class :character 1st Qu.:2020-02-06 1st Qu.: 61.07
Mode :character Mode :character Median :2021-11-15 Median : 72.56
Mean :2021-11-14 Mean : 169.92
3rd Qu.:2023-08-25 3rd Qu.: 249.23
Max. :2025-06-03 Max. :1470.57
NA's :15558
p_ene$Hora %>% unique
[1] "0"
[2] "1"
[3] "2"
[4] "3"
[5] "4"
[6] "5"
[7] "6"
[8] "7"
[9] "8"
[10] "9"
[11] "10"
[12] "11"
[13] "12"
[14] "13"
[15] "14"
[16] "15"
[17] "16"
[18] "17"
[19] "18"
[20] "19"
[21] "20"
[22] "21"
[23] "22"
[24] "23"
[25] NA
[26] "Observação: As linhas 98 a 101 são referentes a segunda hora 23h as 23h59 no dia 16/02/2019 considerando o horário de verão"
p_ene %>% group_by(dia,Submercado) %>% summarise(n=n(),na=sum(is.na(Valor)),
max=max(Valor,na.rm=T),
min=min(Valor,na.rm=T),
mean=mean(Valor,na.rm=T))
Aviso: There were 5186 warnings in `summarise()`.
The first warning was:
ℹ In argument: `max = max(Valor, na.rm = T)`.
ℹ In group 5: `dia = 2018-04-17` `Submercado = NA`.
Caused by warning in `max()`:
! nenhum argumento não faltante para max; retornando -Inf
ℹ Run ]8;;ide:run:dplyr::last_dplyr_warnings()dplyr::last_dplyr_warnings()]8;; to see the 5185 remaining warnings.
`summarise()` has grouped output by 'dia'. You can override using the `.groups` argument.
p_ene %>% drop_na() %>% mutate(data_hora=ymd_hms(paste0(dia,"-",as.integer(Hora),"-00-0"))) %>%
group_by(dia,Submercado) %>% summarise(Valor=mean(Valor)) %>%
group_by(Submercado) %>%
mutate(Valor=rollmean(Valor,24,fill = NA)) %>%
ggplot(aes(dia,Valor,col=Submercado))+geom_line() +facet_grid(Submercado~"Submercado")
`summarise()` has grouped output by 'dia'. You can override using the `.groups` argument.
Aviso: Removed 92 rows containing missing values or values outside the scale range (`geom_line()`).

library(readxl)library(readxl)
pc_semana <- read_excel("Historico_do_Preco_Medio_Semanal_-_30_de_junho_de_2001_a_30_de_maio_de_2025.xls")
View(pc_semana)
pc_semana <- read_excel("Historico_do_Preco_Medio_Semanal_-_30_de_junho_de_2001_a_30_de_maio_de_2025.xls")
pc_semana %>% ggplot(aes(DATA_INICIO))+
geom_line(aes(y=rollmean(SUDESTE,3*4*4,fill = NA)
),col="blue")+
geom_line(aes(y=rollmean(SUL,3*4*4,fill = NA)
),col="red")+
geom_line(aes(y=rollmean(NORDESTE,3*4*4,fill = NA)
),col="green")+
geom_line(aes(y=rollmean(NORTE,3*4*4,fill = NA)
),col="grey")+theme_minimal()
Aviso: Removed 47 rows containing missing values or values outside the scale range (`geom_line()`).
Aviso: Removed 47 rows containing missing values or values outside the scale range (`geom_line()`).
Aviso: Removed 47 rows containing missing values or values outside the scale range (`geom_line()`).
Aviso: Removed 47 rows containing missing values or values outside the scale range (`geom_line()`).


p_semana
daas_completas
ena_ear_hidr_ceg_amb %>% left_join(daas_completas,by = c("ena_data"="datas")) %>%
mutate(preco=case_when(nom_subsistema.x=="SUDESTE"~SUDESTE,
nom_subsistema.x=="SUL"~SUL,
nom_subsistema.x=="NORDESTE"~NORDESTE,
nom_subsistema.x=="NORTE"~NORTE,TRUE~NA
))->hidr_amb_prec
Erro: objeto 'ena_ear_hidr_ceg_amb' não encontrado
hidr_amb_prec$preco %>% summary
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
4.00 25.31 101.24 177.25 247.01 822.83 45390
hidr_amb_prec %>% filter(ena_data>inicio-1) ->hidr_amb_prec
hidr_amb_prec %>% group_by(ena_data,nom_subsistema.x,ANO,MES) %>%
summarise(preco=mean(preco,na.rm = T),
temperature=mean(temperature,na.rm = T),
preciptation=sum(preciptation,na.rm = T),
humidity=mean(humidity,na.rm = T),
wind_speed=mean(wind_speed,na.rm = T),
ear_reservatorio_subsistema_proprio_mwmes=sum(ear_reservatorio_subsistema_proprio_mwmes,na.rm = T),
ena_bruta_res_mwmed=sum(ena_bruta_res_mwmed,na.rm = T),
val_geracao=sum(val_geracao,na.rm = T),
val_geracao_day_subsistema=mean(val_geracao_day_subsistema,na.rm = T))->df
`summarise()` has grouped output by 'ena_data', 'nom_subsistema.x', 'ANO'. You can override using the `.groups` argument.
lm(log(preco)~trend+log(val_geracao_day_subsistema)+log(ear_reservatorio_subsistema_proprio_mwmes)+nom_subsistema.x+0,df) %>% summary
Call:
lm(formula = log(preco) ~ trend + log(val_geracao_day_subsistema) +
log(ear_reservatorio_subsistema_proprio_mwmes) + nom_subsistema.x +
0, data = df)
Residuals:
Min 1Q Median 3Q Max
-2.9879 -0.7228 -0.0397 0.6442 4.1871
Coefficients:
Estimate Std. Error t value Pr(>|t|)
trend 0.163419 0.001746 93.622 <2e-16 ***
log(val_geracao_day_subsistema) -0.052492 0.025951 -2.023 0.0431 *
log(ear_reservatorio_subsistema_proprio_mwmes) -0.626629 0.012498 -50.139 <2e-16 ***
nom_subsistema.xNORDESTE 9.097699 0.201835 45.075 <2e-16 ***
nom_subsistema.xNORTE 8.220124 0.192135 42.783 <2e-16 ***
nom_subsistema.xSUDESTE 10.454692 0.237149 44.085 <2e-16 ***
nom_subsistema.xSUL 8.952210 0.206150 43.426 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.031 on 25517 degrees of freedom
Multiple R-squared: 0.9467, Adjusted R-squared: 0.9467
F-statistic: 6.477e+04 on 7 and 25517 DF, p-value: < 2.2e-16
options(scipen = 9)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOiANCiAgICB0b2M6IHllcw0KLS0tDQoNCmBgYHtyfQ0KbGlicmFyeShyZWFkeGwpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoem9vKQ0KDQpgYGANCg0KYGBge3J9DQpwcmNfZW5lcmdpYSA8LSByZWFkX2V4Y2VsKCJIaXN0b3JpY29fZG9fUHJlY29fSG9yYXJpb18tXzE3X2RlX2FicmlsX2RlXzIwMThfYV8zX2RlX2p1bmhvX2RlXzIwMjUueGxzeCIpDQpgYGANCg0KYGBge3J9DQoNCnByY19lbmVyZ2lhICU+JSBnYXRoZXIoImRpYSIsIlZhbG9yIiwtSG9yYSwtU3VibWVyY2FkbykgJT4lIG11dGF0ZShkaWE9YXMuRGF0ZShhcy5pbnRlZ2VyKGRpYSksIG9yaWdpbiA9ICIxODk5LTEyLTMwIikpIC0+cF9lbmUNCnBfZW5lJFN1Ym1lcmNhZG8gJT4lIHRhYmxlDQpwX2VuZSAlPiUgI3NwcmVhZChTdWJtZXJjYWRvLFZhbG9yKS0+cF9lbmUNCg0KDQpgYGANCg0KYGBge3IgZmlnLmhlaWdodD0xMiwgZmlnLndpZHRoPTE2fQ0Kc3VtbWFyeShwX2VuZSkNCnBfZW5lJEhvcmEgJT4lIHVuaXF1ZQ0KDQpwX2VuZSAlPiUgZ3JvdXBfYnkoZGlhLFN1Ym1lcmNhZG8pICU+JSBzdW1tYXJpc2Uobj1uKCksbmE9c3VtKGlzLm5hKFZhbG9yKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PW1heChWYWxvcixuYS5ybT1UKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49bWluKFZhbG9yLG5hLnJtPVQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYW49bWVhbihWYWxvcixuYS5ybT1UKSkNCnBfZW5lICU+JSBkcm9wX25hKCkgJT4lIG11dGF0ZShkYXRhX2hvcmE9eW1kX2htcyhwYXN0ZTAoZGlhLCItIixhcy5pbnRlZ2VyKEhvcmEpLCItMDAtMCIpKSkgJT4lIA0KICBncm91cF9ieShkaWEsU3VibWVyY2FkbykgJT4lIHN1bW1hcmlzZShWYWxvcj1tZWFuKFZhbG9yKSkgJT4lIA0KICBncm91cF9ieShTdWJtZXJjYWRvKSAlPiUgDQogIG11dGF0ZShWYWxvcj1yb2xsbWVhbihWYWxvciwyNCxmaWxsID0gTkEpKSAlPiUgDQogIGdncGxvdChhZXMoZGlhLFZhbG9yLGNvbD1TdWJtZXJjYWRvKSkrZ2VvbV9saW5lKCkgK2ZhY2V0X2dyaWQoU3VibWVyY2Fkb34iU3VibWVyY2FkbyIpDQpgYGANCg0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHhsKWxpYnJhcnkocmVhZHhsKQ0KcGNfc2VtYW5hIDwtIHJlYWRfZXhjZWwoIkhpc3Rvcmljb19kb19QcmVjb19NZWRpb19TZW1hbmFsXy1fMzBfZGVfanVuaG9fZGVfMjAwMV9hXzMwX2RlX21haW9fZGVfMjAyNS54bHMiKQ0KVmlldyhwY19zZW1hbmEpDQpwY19zZW1hbmEgPC0gcmVhZF9leGNlbCgiSGlzdG9yaWNvX2RvX1ByZWNvX01lZGlvX1NlbWFuYWxfLV8zMF9kZV9qdW5ob19kZV8yMDAxX2FfMzBfZGVfbWFpb19kZV8yMDI1LnhscyIpDQpgYGANCg0KDQoNCg0KYGBge3J9DQpwY19zZW1hbmEgJT4lIHN1bW1hcnkNCnBjX3NlbWFuYSAlPiUgZ2dwbG90KGFlcyhEQVRBX0lOSUNJTykpKw0KICBnZW9tX2xpbmUoYWVzKHk9cm9sbG1lYW4oU1VERVNURSwzKjQqNCxmaWxsID0gTkEpDQogICAgICAgICAgICAgICAgICApLGNvbD0iYmx1ZSIpKw0KICAgIGdlb21fbGluZShhZXMoeT1yb2xsbWVhbihTVUwsMyo0KjQsZmlsbCA9IE5BKQ0KICAgICAgICAgICAgICAgICAgKSxjb2w9InJlZCIpKw0KICAgIGdlb21fbGluZShhZXMoeT1yb2xsbWVhbihOT1JERVNURSwzKjQqNCxmaWxsID0gTkEpDQogICAgICAgICAgICAgICAgICApLGNvbD0iZ3JlZW4iKSsNCiAgICBnZW9tX2xpbmUoYWVzKHk9cm9sbG1lYW4oTk9SVEUsMyo0KjQsZmlsbCA9IE5BKQ0KICAgICAgICAgICAgICAgICAgKSxjb2w9ImdyZXkiKSt0aGVtZV9taW5pbWFsKCkNCmBgYA0KYGBge3J9DQpwY19zZW1hbmEgJT4lIGdhdGhlcigiU3VibWVyY2FkbyIsInByZWNvIiwtQU5PLC1NRVMsLVNFTUFOQSwtY29udGFpbnMoIkRBVEEiKSktPnBfc2VtYW5hDQpwX3NlbWFuYSAlPiUgDQogIGdncGxvdChhZXMoREFUQV9GSU0scHJlY28sY29sPVN1Ym1lcmNhZG8pKStnZW9tX2xpbmUoKSArZmFjZXRfZ3JpZChTdWJtZXJjYWRvfiJTdWJtZXJjYWRvIikrZ2VvbV9zbW9vdGgoZm9ybXVsYSA9IHkgfiBzcGxpbmVzOjpucyh4LCA0KSkNCnRzX2c8LXRzKHBjX3NlbWFuYSRTVURFU1RFLGZyZXF1ZW5jeSA9IDU0KSANCnJtKHRzKQ0KIGRlY29tcG9zZSh0c19nKSAlPiUgcGxvdA0KYGBgDQoNCmBgYHtyfQ0KcF9zZW1hbmENCmBgYA0KDQpgYGB7cn0NCnBjX3NlbWFuYSREQVRBX0lOSUNJTyAlPiUgbWluLT5pbmljaW8NCnBjX3NlbWFuYSAlPiUgZmlsdGVyKERBVEFfSU5JQ0lPPT1pbmljaW8pDQpkYXRhczwtZW5hX2Vhcl9jZWdfYW1iJGVuYV9kYXRhICU+JSB1bmlxdWUNCmRhdGEuZnJhbWUoZGF0YXMpICU+JSBmaWx0ZXIoZGF0YXM+aW5pY2lvLTEpICU+JSBsZWZ0X2pvaW4ocGNfc2VtYW5hLGJ5ID0gYygiZGF0YXMiPSJEQVRBX0lOSUNJTyIpKS0+ZGFhc19jb21wbGV0YXMNCmRhYXNfY29tcGxldGFzDQppPTINCmZvciAoaSBpbiAxOmxlbmd0aChkYWFzX2NvbXBsZXRhcyRBTk8pKSB7I2xlbmd0aChkYWFzX2NvbXBsZXRhcyRBTk8pDQogIHByaW50KGkpDQogIGlmIChpcy5uYShkYWFzX2NvbXBsZXRhcyRBTk9baV0pKSB7DQogICAgZGFhc19jb21wbGV0YXMkQU5PW2ldPC1kYWFzX2NvbXBsZXRhcyRBTk9baS0xXQ0KICAgIGRhYXNfY29tcGxldGFzJE1FU1tpXTwtZGFhc19jb21wbGV0YXMkTUVTW2ktMV0NCiAgICBkYWFzX2NvbXBsZXRhcyRTRU1BTkFbaV08LWRhYXNfY29tcGxldGFzJFNFTUFOQVtpLTFdDQogICAgZGFhc19jb21wbGV0YXMkREFUQV9GSU1baV08LWRhYXNfY29tcGxldGFzJERBVEFfRklNW2ktMV0NCiAgICBkYWFzX2NvbXBsZXRhcyRTVURFU1RFW2ldPC1kYWFzX2NvbXBsZXRhcyRTVURFU1RFW2ktMV0NCiAgICBkYWFzX2NvbXBsZXRhcyRTVUxbaV08LWRhYXNfY29tcGxldGFzJFNVTFtpLTFdDQogICAgZGFhc19jb21wbGV0YXMkTk9SREVTVEVbaV08LWRhYXNfY29tcGxldGFzJE5PUkRFU1RFW2ktMV0NCiAgICBkYWFzX2NvbXBsZXRhcyROT1JURVtpXTwtZGFhc19jb21wbGV0YXMkTk9SVEVbaS0xXQ0KDQogICAgDQogIH0NCiAgDQp9ICANCmRhYXNfY29tcGxldGFzDQpgYGANCmBgYHtyfQ0KZGFhc19jb21wbGV0YXMNCmBgYA0KDQpgYGB7cn0NCmVuYV9lYXJfY2VnX2FtYiAlPiUgbGVmdF9qb2luKGRhYXNfY29tcGxldGFzLGJ5ID0gYygiZW5hX2RhdGEiPSJkYXRhcyIpKSAlPiUgDQogIG11dGF0ZShwcmVjbz1jYXNlX3doZW4obm9tX3N1YnNpc3RlbWEueD09IlNVREVTVEUiflNVREVTVEUsDQogICAgICAgICAgICAgICAgICAgICAgICAgbm9tX3N1YnNpc3RlbWEueD09IlNVTCJ+U1VMLA0KICAgICAgICAgICAgICAgICAgICAgICAgIG5vbV9zdWJzaXN0ZW1hLng9PSJOT1JERVNURSJ+Tk9SREVTVEUsDQogICAgICAgICAgICAgICAgICAgICAgICAgbm9tX3N1YnNpc3RlbWEueD09Ik5PUlRFIn5OT1JURSxUUlVFfk5BDQogICAgICAgICAgICAgICAgICAgICAgICAgKSktPmhpZHJfYW1iX3ByZWMNCg0KYGBgDQoNCmBgYHtyfQ0KaGlkcl9hbWJfcHJlYyRwcmVjbyAlPiUgIHN1bW1hcnkNCmBgYA0KDQpgYGB7cn0NCmhpZHJfYW1iX3ByZWMgJT4lIGZpbHRlcihlbmFfZGF0YT5pbmljaW8tMSkgLT5oaWRyX2FtYl9wcmVjDQpgYGANCg0KYGBge3J9DQpoaWRyX2FtYl9wcmVjICU+JSBncm91cF9ieShlbmFfZGF0YSxub21fc3Vic2lzdGVtYS54LEFOTyxNRVMpICU+JSANCiAgc3VtbWFyaXNlKHByZWNvPW1lYW4ocHJlY28sbmEucm0gPSBUKSwNCiAgICAgICAgICAgIHRlbXBlcmF0dXJlPW1lYW4odGVtcGVyYXR1cmUsbmEucm0gPSBUKSwNCiAgICAgICAgICAgIHByZWNpcHRhdGlvbj1zdW0ocHJlY2lwdGF0aW9uLG5hLnJtID0gVCksDQogICAgICAgICAgICBodW1pZGl0eT1tZWFuKGh1bWlkaXR5LG5hLnJtID0gVCksDQogICAgICAgICAgICB3aW5kX3NwZWVkPW1lYW4od2luZF9zcGVlZCxuYS5ybSA9IFQpLA0KICAgICAgICAgICAgZWFyX3Jlc2VydmF0b3Jpb19zdWJzaXN0ZW1hX3Byb3ByaW9fbXdtZXM9c3VtKGVhcl9yZXNlcnZhdG9yaW9fc3Vic2lzdGVtYV9wcm9wcmlvX213bWVzLG5hLnJtID0gVCksDQogICAgICAgICAgICBlbmFfYnJ1dGFfcmVzX213bWVkPXN1bShlbmFfYnJ1dGFfcmVzX213bWVkLG5hLnJtID0gVCksDQogICAgICAgICAgICB2YWxfZ2VyYWNhbz1zdW0odmFsX2dlcmFjYW8sbmEucm0gPSBUKSwNCiAgICAgICAgICAgIHZhbF9nZXJhY2FvX2RheV9zdWJzaXN0ZW1hPW1lYW4odmFsX2dlcmFjYW9fZGF5X3N1YnNpc3RlbWEsbmEucm0gPSBUKSktPmRmDQpgYGANCg0KYGBge3IgZmlnLmhlaWdodD0xNSwgZmlnLndpZHRoPTMwfQ0KZGYgJT4lIGdncGxvdChhZXMoZW5hX2RhdGEsbG9nKHByZWNvKSkpK2dlb21fbGluZSgpKw0KICBmYWNldF9ncmlkKG5vbV9zdWJzaXN0ZW1hLnh+IiIpDQoNCmRmICU+JSBtdXRhdGUodHJlbmQ9QU5PLTIwMDApLT5kZg0KbG0obG9nKHByZWNvKX50cmVuZCtsb2codmFsX2dlcmFjYW9fZGF5X3N1YnNpc3RlbWEpK2xvZyhlYXJfcmVzZXJ2YXRvcmlvX3N1YnNpc3RlbWFfcHJvcHJpb19td21lcykrbm9tX3N1YnNpc3RlbWEueCswLGRmKSAlPiUgc3VtbWFyeQ0KYGBgDQpgYGB7cn0NCm9wdGlvbnMoc2NpcGVuID0gOSkNCmBgYA0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==