knitr::opts_chunk$set(
echo = TRUE,
warning = FALSE,
message = FALSE
)
# 1. Vyhľadanie CSV databázy
# Funguje aj vtedy, keď má súbor za názvom (1), (2) a podobne.
priecinky <- unique(c(
getwd(),
".",
"..",
file.path(path.expand("~"), "Downloads"),
file.path(path.expand("~"), "Desktop"),
file.path(path.expand("~"), "Documents")
))
subory <- unlist(lapply(priecinky, function(p) {
if (dir.exists(p)) {
list.files(
p,
pattern = "\\.csv$",
full.names = TRUE,
ignore.case = TRUE
)
} else {
character(0)
}
}), use.names = FALSE)
subory <- unique(subory)
kandidati <- subory[
grepl(
"global.data.on.sustainable.energy",
basename(subory),
ignore.case = TRUE
)
]
# 2. Ak CSV nie je v počítači, pokúsime sa ho stiahnuť.
if (length(kandidati) > 0) {
energia <- read.csv(
kandidati[1],
check.names = FALSE,
stringsAsFactors = FALSE,
na.strings = c("", "NA", "N/A")
)
} else {
adresy <- c(
paste0(
"https://raw.githubusercontent.com/",
"AnshTanwar/Global-Data-on-Sustainable-Energy/",
"main/global-data-on-sustainable-energy%20%281%29.csv"
),
paste0(
"https://raw.githubusercontent.com/",
"anshtanwar/global-data-on-sustainable-energy/",
"main/global-data-on-sustainable-energy.csv"
)
)
energia <- NULL
for (adresa in adresy) {
pokus <- tryCatch(
read.csv(
adresa,
check.names = FALSE,
stringsAsFactors = FALSE,
na.strings = c("", "NA", "N/A")
),
error = function(e) NULL
)
if (!is.null(pokus) &&
"Entity" %in% names(pokus) &&
"Year" %in% names(pokus)) {
energia <- pokus
break
}
}
if (is.null(energia)) {
stop(
"CSV databáza sa nenašla. ",
"Vlož súbor global-data-on-sustainable-energy (1).csv ",
"do rovnakého priečinka ako tento QMD súbor."
)
}
write.csv(
energia,
"global-data-on-sustainable-energy.csv",
row.names = FALSE
)
}
# 3. Výber premenných
stlpce <- c(
"Entity",
"Year",
"Electricity from renewables (TWh)",
"Electricity from fossil fuels (TWh)",
"Electricity from nuclear (TWh)",
"Renewable energy share in the total final energy consumption (%)",
"Value_co2_emissions_kt_by_country",
"gdp_per_capita"
)
if (!all(stlpce %in% names(energia))) {
stop("Načítaný CSV súbor nemá požadované stĺpce.")
}
energetika <- energia[, stlpce]
names(energetika) <- c(
"Krajina",
"Rok",
"Obnovitelna",
"Fosilna",
"Jadrova",
"Podiel",
"EmisieCO2",
"HDP"
)
# 4. Prevod premenných na čísla
for (p in names(energetika)[-1]) {
energetika[[p]] <- suppressWarnings(
as.numeric(as.character(energetika[[p]]))
)
}
# 5. Zoradenie databázy
energetika <- energetika[
order(energetika$Krajina, energetika$Rok),
]
rownames(energetika) <- NULL
# 6. Výber Slovenska
slovensko <- subset(
energetika,
Krajina == "Slovakia"
)
slovensko <- slovensko[
order(slovensko$Rok),
]
udaje <- slovensko[
complete.cases(
slovensko[, c(
"Rok",
"Obnovitelna",
"Fosilna",
"Jadrova"
)]
),
]
if (nrow(udaje) < 5) {
stop("Nedostatok úplných údajov o Slovensku.")
}
cat(
"Databáza úspešne načítaná:",
nrow(energia),
"riadkov a",
ncol(energia),
"stĺpcov."
)