Pre prácu s údajmi (databázou) používame najčastejšie dátový typ .data.frame.. Je to tabuľka, ktorá pozostáva zo stĺpcov rozličných typov. Jeden riadok pritom predstavuje jeden záznam databázy.
Majme údaje o žiakoch, ktoré predstavujú tri premenné - Meno, Vek a Body:
# Nastavenie prostredia pre čistý výstup
knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE
)
# Vytvorenie samostatných premenných
Meno <- c("Jana", "Jozef", "Mária", "Peter", "Lucia")
Vek <- c(10, 11, 9, 12, 10)
Body <- c(85, 92, 78, 88, 95)
# Spojenie do jedného data.frame
udaje <- data.frame(Meno, Vek, Body)
print(udaje)
## Meno Vek Body
## 1 Jana 10 85
## 2 Jozef 11 92
## 3 Mária 9 78
## 4 Peter 12 88
## 5 Lucia 10 95
# Adresovanie premenných a základné výpočty
cat("\n Priemerný vek žiakov je:", round(mean(udaje$Vek), 2), "rokov\n")
##
## Priemerný vek žiakov je: 10.4 rokov
## Najvyšší počet bodov získal: Lucia
## Meno Vek Body
## 2 Jozef 11 92
## Vek Body
## 1 10 85
## 2 11 92
## 3 9 78
## 4 12 88
## 5 10 95
## Meno Vek Body
## Length:5 Min. : 9.0 Min. :78.0
## Class :character 1st Qu.:10.0 1st Qu.:85.0
## Mode :character Median :10.0 Median :88.0
## Mean :10.4 Mean :87.6
## 3rd Qu.:11.0 3rd Qu.:92.0
## Max. :12.0 Max. :95.0
# Pridanie nového stĺpca - napr. známka podľa bodov
udaje$Znamka <- ifelse(
udaje$Body >= 90, "Výborný",
ifelse(udaje$Body >= 80, "Chválitebný", "Dobrý")
)
print(udaje)
## Meno Vek Body Znamka
## 1 Jana 10 85 Chválitebný
## 2 Jozef 11 92 Výborný
## 3 Mária 9 78 Dobrý
## 4 Peter 12 88 Chválitebný
## 5 Lucia 10 95 Výborný
# Pridanie nového stĺpca typu TRUE/FALSE
udaje$MaAuto <- c(TRUE, FALSE, FALSE, TRUE, FALSE)
print(udaje)
## Meno Vek Body Znamka MaAuto
## 1 Jana 10 85 Chválitebný TRUE
## 2 Jozef 11 92 Výborný FALSE
## 3 Mária 9 78 Dobrý FALSE
## 4 Peter 12 88 Chválitebný TRUE
## 5 Lucia 10 95 Výborný FALSE
# Pridanie nového riadku (s inými údajmi)
novy.ziak <- data.frame(Meno = "Diana", Vek = 13, Body = 81, Znamka = "Chválitebný", MaAuto = FALSE)
udaje <- rbind(udaje, novy.ziak)
print(udaje)
## Meno Vek Body Znamka MaAuto
## 1 Jana 10 85 Chválitebný TRUE
## 2 Jozef 11 92 Výborný FALSE
## 3 Mária 9 78 Dobrý FALSE
## 4 Peter 12 88 Chválitebný TRUE
## 5 Lucia 10 95 Výborný FALSE
## 6 Diana 13 81 Chválitebný FALSE
## Meno Vek Body Znamka MaAuto
## 5 Lucia 10 95 Výborný FALSE
## 2 Jozef 11 92 Výborný FALSE
## 4 Peter 12 88 Chválitebný TRUE
## 1 Jana 10 85 Chválitebný TRUE
## 6 Diana 13 81 Chválitebný FALSE
## 3 Mária 9 78 Dobrý FALSE
library(knitr)
library(kableExtra)
library(tidyverse)
# Pridáme percentuálny výkon a farebné zvýraznenie
udaje2 <- udaje %>%
mutate(
percent = round(Body/100*100,1),
grade = case_when(
Body >= 90 ~ "A",
Body >= 80 ~ "B",
Body >= 70 ~ "C",
TRUE ~ "D"
)
)
# Tabuľka s farebným zvýraznením podľa bodov
udaje2 %>%
kable(caption = "Výsledky žiakov s farebným zvýraznením",
align = c("l","c","l","r","c","c")) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE, position = "center") %>%
row_spec(which(udaje2$Body >= 90), bold = TRUE, color = "white", background = "green") %>%
row_spec(which(udaje2$Body < 70), bold = TRUE, color = "white", background = "red") %>%
column_spec(6, bold = TRUE, color = "blue") # zvýrazníme stĺpec percent
Meno | Vek | Body | Znamka | MaAuto | percent | grade | |
---|---|---|---|---|---|---|---|
5 | Lucia | 10 | 95 | Výborný | FALSE | 95 | A |
2 | Jozef | 11 | 92 | Výborný | FALSE | 92 | A |
4 | Peter | 12 | 88 | Chválitebný | TRUE | 88 | B |
1 | Jana | 10 | 85 | Chválitebný | TRUE | 85 | B |
6 | Diana | 13 | 81 | Chválitebný | FALSE | 81 | B |
3 | Mária | 9 | 78 | Dobrý | FALSE | 78 | C |
library(datasets)
library(kableExtra)
library(dplyr)
# Získanie zoznamu datasetov z balíka 'datasets'
ds <- as.data.frame(utils::data(package = "datasets")$results)[, c("Item","Title")]
# Filter podľa kľúčového slova "Air"
ds_air <- ds %>% filter(grepl("Air", Title))
# Tabuľka prvých 10 datasetov obsahujúcich "Air"
ds_air %>%
head(10) %>%
kable(caption = "Datasety obsahujúce slovo 'Air'",
col.names = c("Dataset", "Title"),
align = c("l","l")) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE, position = "center") %>%
row_spec(1, bold = TRUE, color = "white", background = "steelblue")
Dataset | Title |
---|---|
AirPassengers | Monthly Airline Passenger Numbers 1949-1960 |
airmiles | Passenger Miles on Commercial US Airlines, 1937-1960 |
airquality | New York Air Quality Measurements |
library(wooldridge)
ds_wool <- as.data.frame(utils::data(package = "wooldridge")$results)[, c("Item","Title")]
# Filter datasetov, kde názov obsahuje "wage"
ds_wool %>%
filter(grepl("wage", Title, ignore.case = TRUE)) %>%
kable(caption = "Datasety z Wooldridge obsahujúce 'wage'",
col.names = c("Dataset", "Title"),
align = c("l","l")) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE, position = "center") %>%
row_spec(1, bold = TRUE, color = "white", background = "darkgreen")
Dataset | Title |
---|---|
minwage | minwage |
wage1 | wage1 |
wage2 | wage2 |
wagepan | wagepan |
wageprc | wageprc |