Import údajov
library(dplyr)
library(mice)
library(VIM)
udaje1 <- read.csv2(
"udaje/ChybnaDatabaza.csv",
header = TRUE,
sep = ";",
na.strings = c("", "NA"),
stringsAsFactors = FALSE
)
head(udaje1)
# počet NA v jednotlivých stĺpcoch
print("pocet chybajucich udajov za jednotlive premenne")
## [1] "pocet chybajucich udajov za jednotlive premenne"
colSums(is.na(udaje1))
## YEARS COMPANIES
## 1 0
## EXCHANGE.SECTOR PRIMARY.BUSINESS
## 0 1
## TOBIN.Q MARKET.CAPITALIZATION
## 1 2
## RETURN.ON.ASSETS DEBT.TO.ASSET
## 1 4
## FIRM.SIZE SOCIAL.DISCLOSURE.INDEX
## 2 3
## ENVIRONMENTAL.DISCLOSURE.INDEX GOVERNANCE.DISCLOSURE.INDEX
## 1 2
## ESG.INDEX
## 2
id="abbrev_columns"
# skracovanie názvov stĺpcov pre grafy
names(udaje1) <- abbreviate(names(udaje1), minlength = 3, strict = FALSE)
Upravovanie názvov premenných
library(dplyr)
# uloženie pôvodných názvov stĺpcov
old_names <- names(udaje1)
# odstránenie medzier z názvov premenných
names(udaje1) <- make.names(names(udaje1))
# porovnanie pôvodných a upravených názvov
comparison <- data.frame(
Original_Name = old_names,
New_Name = names(udaje1)
)
print(comparison)
## Original_Name New_Name
## 1 YEA YEA
## 2 COM COM
## 3 EXC EXC
## 4 PRI PRI
## 5 TOB TOB
## 6 MAR MAR
## 7 RET RET
## 8 DEB DEB
## 9 FIR FIR
## 10 SOC SOC
## 11 ENV ENV
## 12 GOV GOV
## 13 ESG ESG
# pattern of missingness
md.pattern(udaje1)

## COM EXC YEA PRI TOB RET ENV MAR FIR GOV ESG SOC DEB
## 746 1 1 1 1 1 1 1 1 1 1 1 1 1 0
## 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
## 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
## 1 1 1 1 1 1 1 1 1 1 1 0 1 0 2
## 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
## 1 1 1 1 1 1 1 1 1 1 0 1 0 0 3
## 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
## 1 1 1 1 1 1 1 1 1 0 1 0 1 1 2
## 2 1 1 1 1 1 1 1 0 1 1 1 1 1 1
## 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
## 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
## 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
## 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
## 1 1 1 0 1 1 1 1 1 1 1 1 0 0 3
## 0 0 1 1 1 1 1 2 2 2 2 3 4 20
# graf chýbajúcich údajov s krátkymi názvami
par(mar = c(15, 4, 2, 1))
aggr(
udaje1,
bars = FALSE,
col = c("navyblue", "red"),
numbers = TRUE,
sortVars = TRUE,
cex.axis = 0.6,
gap = 8
)
## Warning in plot.aggr(res, ...): not enough horizontal space to display
## frequencies

##
## Variables sorted by number of missings:
## Variable Count
## DEB 0.005263158
## SOC 0.003947368
## MAR 0.002631579
## FIR 0.002631579
## GOV 0.002631579
## ESG 0.002631579
## YEA 0.001315789
## PRI 0.001315789
## TOB 0.001315789
## RET 0.001315789
## ENV 0.001315789
## COM 0.000000000
## EXC 0.000000000
# imputácia chýbajúcich údajov
imp <- mice(udaje1, seed = 123)
##
## iter imp variable
## 1 1 YEA
## 1 2 YEA
## 1 3 YEA
## 1 4 YEA
## 1 5 YEA
## 2 1 YEA
## 2 2 YEA
## 2 3 YEA
## 2 4 YEA
## 2 5 YEA
## 3 1 YEA
## 3 2 YEA
## 3 3 YEA
## 3 4 YEA
## 3 5 YEA
## 4 1 YEA
## 4 2 YEA
## 4 3 YEA
## 4 4 YEA
## 4 5 YEA
## 5 1 YEA
## 5 2 YEA
## 5 3 YEA
## 5 4 YEA
## 5 5 YEA
## Warning: Number of logged events: 12
udaje1 <- complete(imp, 1)
# kontrola po imputácii
print("Počet chýbajúcich údajov po imputácii:")
## [1] "Počet chýbajúcich údajov po imputácii:"
colSums(is.na(udaje1))
## YEA COM EXC PRI TOB MAR RET DEB FIR SOC ENV GOV ESG
## 0 0 0 1 1 2 1 4 2 3 1 2 2