Informační webinář: Úvod do programování v Pythonu (pro úplné začátečníky)

18. 9. 2024 od 14:00


⚠️ Poslední místa – Regresní analýza v TIBCO Statistica

Brno (Mendelova univerzita) – 6. 6. 2024


⚠️ Poslední místa – Analýza rozptylu v TIBCO Statistica

Brno (Mendelova univerzita) – 7. 6. 2024

Zpracování dat v R tidyverse – 2. díl: import dat z Excelu, TIBCO Statistica a SPSS

Prozkoumejte možnosti importu dat z Excelu, TIBCO Statistica a SPSS do R pomocí balíčků tidyverse. Naučte se, jak efektivně pracovat s různými formáty souborů a připravit svá data pro spolehlivou statistickou analýzu a vizualizaci.

Obsah


V prvním dílu naší série o zpracování dat v R tidyverse jsme se seznámili se základními pojmy a funkcemi, které tvoří základ práce s tímto výkonným ekosystémem balíčků. Prošli jsme také syntax programovacího jazyka R, datové typy a objekty a představili jsme si klíčové funkce pro práci v RStudiu.

Nyní se zaměříme na import výzkumných dat do jazyka R,resp. aplikace RStudio. Kvalitní import je základem pro spolehlivou statistickou analýzu, vizualizaci dat a (ne)vyvrácení vaší alternativní hypotézy. Umožní vám mj.:

  • snadno reprodukovat vaše analýzy a studie,
  • zachovat integritu dat pro další analýzy,
  • identifikovat a opravit chyby ještě před samotnou analýzou,
  • zjednodušit proces transformace a čištění dat.

Import s úpravami, nebo bez?

Funkce pro import do jazyka R nabízejí řadu argumentů, pomocí kterých můžete importovat jen vybranou část dat, označit chybějící hodnoty apod. Při práci s velkými datovými sadami může být efektivnější a paměťově úspornější data při importu rovnou upravit.

Pokud jsou vaše datové sady menší nebo střední velikosti (do desítek tisíc řádků a vyšší desítek sloupců), je vhodnější importovat všechna data a úpravy provést pomocí tidyverse balíčku dplyr.



Příprava prostředí

Před samotným importem dat je klíčové správně nastavit pracovní prostředí v R. Jedním z prvních kroků je nastavení hlavní složky, také známé jako pracovní adresář. Tento krok vám umožní načítat data, aniž byste museli zadávat kompletní cestu k umístění souborů.

Nastavení hlavní složky (pracovního adresáře) provedete pomocí funkce ‚setwd()‘:

Zvýhodněné balíčky kurzů

Zakupte si balíček 2 nebo více vybraných kurzů a ušetřete

# nastavení pracovního adresáře na C:/Documents/Datasets
setwd("C:/Documents/Datasets")

# alternativní nastavení pracovního adresáře na C:/Documents/Datasets
setwd("C:\\Documents\\Datasets")

Díky tomuto nastavení nemusíte ve funkcích pro import vypisovat jejich přesné umístění – stačí napsat jen název souboru. Pro ověření nastavení aktuálního pracovního adresáře můžete použít funkci ‚getwd()‘:

# zobrazení aktuálního pracovního adresáře
getwd()

Pracovní adresář samozřejmě nastavíte i „naklikáním“, použití ve skriptu má ale několik výhod:

  • každý, kdo spustí váš skript, bude mít stejnou strukturu složek (klíčové pro reprodukovatelnost výzkumu),
  • při sdílení nebo přenosu mezi počítači stačí upravit jednu řádku kódu,
  • umožňuje snadno měnit pracovní adresář pro různé datové sady.

Ze stejných důvodů silně doporučujeme využít skripty i pro import dat.

Zobrazení a ověření importovaných datových sad

V R se všechny datové sady ukládají ve formě datových struktur (objektů). Pro jejich zobrazení po importu (a ověření bezproblémového přenosu dat) využijte tyto funkce:

  • ‚View(nazev-sady)‘ (otevření tabulky s danou sadou v okně Script),
  • ‚nazev-sady‘ (zobrazení datové sady v okně Console).

Detaily rozebíráme v prvním článku o R tidyverse.

Importovaná data nezapomeňte zkontrolovat např. pomocí těchto funkcí:

  • ‚head(nazev-sady)‘ – zobrazí v okně Console prvních několik řádků daného objektu (sady),
  • ‚str(nazev-sady)‘ – zobrazí v okně Console strukturu datového objektu (včetně typů dat a základních informací o každém sloupci),
  • ‚summary(nazev-sady)‘ – zobrazí v okně Console popisné statistiky (míry polohy a míry variability) pro všechny sloupce daného objektu. O základních funkcích R si přečtete zde.


Import dat z Excelu (soubory XLS/XLSX) do R

Pro import dat z programu Microsoft Excel (ve formátu xls a xlsx) slouží balíček readxl. Přestože je s tidyverse kompatibilní, není jeho součástí. Nainstalujete a spustíte jej následujícím způsobem:

# instalace balíčku readxl
install.packages("readxl")

# načtení balíčku readxl
library(readxl)

Ukázka xlsx souboru

Pro načtení konkrétního listu stačí do funkce přidat argument ‚sheet‘. (Pro spojení listů je vhodnější využít funkce z balíčku dplyr, o kterém budeme mluvit v jednom z následujících článků):

# import konkrétního listu z daného souboru
data <- read_excel("nazev-souboru.xlsx", sheet = "nazev-listu")

# import konkrétního listu z daného souboru pomocí pořadí listu
data <- read_excel("nazev-souboru.xlsx", sheet = 1)

Pro import určitého rozsahu buněk slouží argument ‚range‘:

# import konkrétního rozsahu buněk z určitého listu a souboru
data <- read_excel("nazev-souboru.xlsx", sheet = "nazev-listu", range = "A1:A100")

Důležitým argumentem je ‚na‘ pro specifikaci, které hodnoty v souboru považovat za chybějící. Pokud např. laboratorní zařízení při měření nechalo u části chybějících hodnot prázdné pole a jiné zařízení doplnilo NA, popř. N/A, bude mít argument následující podobu:

# import celého souboru z Excelu s chybějícími hodnotami
data <- read_excel("nazev-souboru.xlsx", na = c("", "NA", "N/A"))


Proč řešit při importu chybějící hodnoty?

Neoznačené chybějící hodnoty (např. prázdné buňky nebo texty jako “N/A”) mohou způsobit chyby a nesprávné výsledky ve výpočtech, protože je software nemusí rozpoznat jako chybějící.

Označením chybějících hodnot zajistíte, že je funkce pro výpočet průměru, mediánu, kvartilů, směrodatné odchylky apod. automaticky vynechají.


Častou využívaným argumentem je také ‚col-type‘, který může nabývat hodnot ‚TRUE‘, nebo ‚FALSE‘:

  • pokud je hodnota ‚TRUE‘, první řádek datového souboru se využije pro názvy sloupců (výchozí nastavení),
  • pokud je hodnota ‚FALSE‘, první řádek souboru se načte jako data a sloupce se automaticky pojmenují jako X1, X2, atd.:
# import konkrétního rozsahu buněk z určitého listu a souboru (1. řádek = názvy sloupců)
data <- read_excel("nazev-souboru.xlsx", sheet = "nazev-listu", range = "A1:A100", col_names = TRUE)

# import konkrétního rozsahu buněk z určitého listu a souboru (1. řádek = součást dat)
data <- read_excel("nazev-souboru.xlsx", sheet = "nazev-listu", range = "A1:A100", col_names = FALSE)

Rozdíl při použití hodnot ‚TRUE‘ a ‚FALSE‘ argumentu ‚col_names‘

Dalším často využívaným argumentem je ‚col_types‘, který umožňuje specifikovat datové typy jednotlivých sloupců. Ačkoliv balíček readxl provádí odhad datových typů ve sloupcích automaticky, není 100% přesný.

Argument může nabývat hodnot:

  • “text” – textový řetězec,
  • “numeric” – číselná hodnota (včetně čísel s desetinnou čárkou),
  • “date” – datum,
  • “logical” – logická hodnota (TRUE nebo FALSE).

Pořadí typů dat v argumentu ‚col_types‘ odpovídá pořadí sloupců v excelovém souboru. Např. pokud chcete specifikovat typy dat pro první tři sloupce jako text, číslo a datum, použijete tento kód:

# import konkrétního rozsahu buněk z určitého listu a souboru (1. řádek = názvy sloupců) s určením datových typů sloupců
data <- read_excel("nazev-souboru.xlsx", sheet = "nazev-listu", range = "A1:A100", col_names = TRUE, col_types = c("text", "numeric", "date"))


Import CSV (TIBCO Statistica) a TSV souborů do R

CSV (Comma-Separated Values) soubory jsou jedním z nejběžnějších formátů pro ukládání tabulkových dat. Jejich popularita spočívá v jednoduchosti a kompatibilitě s většinou softwarů pro zpracování dat.

Podobně fungují i TSV (Tab-Separated Value) soubory – rozdíl je v oddělení dat tabulátorem.

CSV soubory využijete i pro jednoduché načtení dat z aplikace TIBCO Statistica, která v tomto formátu umožňuje datové sady exportovat.

Pro import CSV a TSV se používá balíček readr, který je součástí ekosystému tidyverse.

# instalace a načtení celého tidyverse
install.packages("tidyverse")
library(tidyverse)

# instalace a načtení balíčku readr
install.packages("readr")
library(readr)

Ukázka csv souboru (s daty oddělenými čárkou a s daty oddělenými středníkem) a tsv souboru (oddělení tabulátorem)

Hlavními funkcemi pro import CSV a TSV souborů jsou ‚read_csv()‘, resp. ‚read_csv2()‘ a ‚read_tsv()‘. Nabízejí mnoho užitečných argumentů pro přizpůsobení importu vašim potřebám. Základní použití vypadá takto:

# import csv souboru (oddělení dat čárkami)
data <- read_csv("nazev-souboru.csv")

# import csv souboru (oddělení dat středníkem)
data <- read_csv2("nazev-souboru.csv")

# import tsv souboru (oddělení dat tabulátorem)
data <- read_tsv("nazev-souboru.tsv")

Mezi nejpoužívanější argumenty funkce ‚read_csv()‘ (resp. ‚read_csv2() a ‚read_tsv()‘) patří:

‚col_names‘ – určuje, zda první řádek obsahuje názvy sloupců; může nabývat hodnot:

  • ‚TRUE‘ (výchozí nastavení) – první řádek datového souboru se využije pro názvy sloupců,
  • ‚FALSE‘ – první řádek souboru se načte jako data, sloupce se automaticky pojmenují jako X1, X2, atd.:
# import csv souboru (1. řádek = názvy sloupců)
data <- read_csv("nazev-souboru.csv", col_names = TRUE)

# import csv souboru (1. řádek = součást dat)
data <- read_csv("nazev-souboru.csv", col_names = FALSE)

‚col_types‘ – slouží ke specifikaci datových typů sloupců (o rozpoznání se snaží balíček readr automaticky). Argument může nabývat těchto hodnot:

  • “character” nebo “c” – textový řetězec,
  • “double” nebo “d” – číselná hodnota (s plovoucí desetinnou čárkou),
  • “integer” nebo “i” – celé číslo,
  • “logical” nebo “l” – logická hodnota (TRUE nebo FALSE),
  • “date” nebo “D” – datum (výchozí formát YYYY-MM-DD),
  • “time” nebo “T” – čas,
  • “datetime” nebo “t” – datum a čas,
  • “factor” nebo “f” – faktor.

V argumentu ‚col_types‘ můžete buď přímo specifikovat název sloupce a typu dat, který obsahuje, nebo použít zkrácený zápis pomocí jednopísmenných kódů pro každý sloupec.

# import csv souboru s určením datového typu pomocí názvu sloupců
data <- read_csv("nazev-souboru.csv", col_types = cols(
  nazev_sloupce1 = col_character(),
  nazev_sloupce2 = col_double(),
  nazev_sloupce3 = col_date()
))

# import csv souboru s určením datového typu pomocí jednopísmenných kódů
data <- read_csv("nazev-souboru.csv", col_types = "cdD")

‚na‘ určuje, které hodnoty bude R v souboru považovat za chybějící:

# import csv souboru s chybějícími hodnotami (v původním souboru označenými prázdným místem)
data <- read_csv("nazev-souboru.csv", na = ""))

# import csv souboru s chybějícími hodnotami (v původním souboru označené prázdným místem, NA a N/A)
data <- read_csv("nazev-souboru.csv", na = c("", "NA", "N/A"))

‚n_max‘ omezuje počet řádků, které se importují:

# import prvních 10 řádků z csv souboru
data <- read_csv("nazev-souboru.csv", n_max = 10)

‚skip‘ určuje počet řádků, které se při importu dat přeskočí:

# import csv souboru po přeskočení prvních 20 řádků
data <- read_csv("nazev-souboru.csv", skip = 20)

# přeskočení prvních 20 řádků a import prvních 10 řádků z csv souboru (1. řádek = součást dat)
data <- read_csv("nazev-souboru.csv", skip = 20, n_max = 10, col_names = FALSE)

Ukázka importovaného csv souboru (prvních 10 řádků po přeskočení 20 řádků, 1. řádek je součástí dat)



Import dat z SPSS (formát SAV) do R

IBM SPSS Statistics je široce používaný software pro statistickou analýzu, zejména v sociálních vědách. Součástí datových souborů jsou navíc metadata v podobě popisu proměnných (Variable Labels) a hodnotové štítky (Value Labels).

Datasety se v SPSS ukládají do sav souborů, popř. zsav (komprimovaný sav soubor). Lze je uložit ale také ve formě csv (viz výše), xls/xlsx (viz výše), por (formát pro přenos mezi různými verzemi SPSS). Do SAS souboru lze uložit i data (a metadata) z aplikace TIBCO Statistica.

Na následujících řádcích budeme mluvit o importu dat ve formátu sav a por. Data (včetně metadat) importujete pomocí balíčku haven, který je součástí tidyverse:

# instalace a načtení celého tidyverse
install.packages("tidyverse")
library(tidyverse)

# instalace a načtení balíčku haven
install.packages("haven")
library(haven)

Ukázka sav souboru v programu IBM SPSS Statistics

Hlavní funkcí pro import dat z SPSS je ‚read_spss()‘. S totou funkcí načtete jak soubory sav, tak por. Základní použití vypadá takto:

# import sav/por souboru
data <- read_spss("nazev-souboru.sav")

Často využívané argumenty funkce ‚read_spss()‘ jsou:

‚user_na‘ určuje jak, bude R zacházet s uživatelem definovanými chybějícími hodnotami (zpravidla nastavené už v programu SPSS). Argument může nabývat hodnot:

  • ‚TRUE‘ (výchozí nastavení) – uživatelem nastavené hodnoty se považují za chybějící,
  • ‚FALSE‘ – uživatelem nastavené hodnoty se nepovažují za chybějící, ale za běžné hodnoty.
# import sav souboru s chybějícími hodnotami (nastavené už v SPSS)
data <- read_spss("nazev-souboru.sav", user_na = TRUE)

# import sav souboru se záměnou chybějících hodnot (nastavené už v SPSS) za běžné hodnoty
data <- read_spss("nazev-souboru.sav", user_na = FALSE)

‚col_select‘ umožňuje importovat pouze vybrané sloupce:

# import sav souboru s jedním vybraným sloupcem
data <- read_spss("nazev-souboru.sav", col_select = “nazev_sloupce”)

# import sav souboru s více vybranými sloupci
data <- read_spss("nazev-souboru.sav", col_select = c(“nazev_sloupce1”, “nazev_sloupce2”, “nazev_sloupce3”))

‚n_max‘ omezuje počet řádků, které se importují:

# import prvních 10 řádků ze sav souboru
data <- read_spss("nazev-souboru.sav", n_max = 10)

‚skip‘ určuje počet řádků, které se při importu dat přeskočí:

# import sav souboru po přeskočení prvních 20 řádků
data <- read_spss("nazev-souboru.sav", skip = 20)

# přeskočení prvních 20 řádků a import prvních 10 řádků ze sav souboru
data <- read_spss("nazev-souboru.sav", skip = 20, n_max = 10)

Ukázka importovaného sav souboru s metadaty



Naučte se ovládat jazyk R pod dohledem zkušeného lektora

Kurz ovládání programovacího jazyka R pořádáme pravidelně v Praze i na dalších místech. Během 1denního kurzu se kromě základních funkcí naučíte do jazyka R data importovat, upravit je, analyzovat a nakonec vizualizovat.

Lektorem kurzu je Mgr. Patrik Galeta, PhD., odborný asistent katedry antropologie Západočeské univerzity v Plzni. Statistickým metodám se věnuje v rámci demografických studií, na ZČU vede také kurz zpracování dat.

Ze školení si navíc odnesete více než 40 skriptů, které můžete použít pro zpracování dat ze svého výzkumu.




Zvýhodněné balíčky kurzů

Zakupte si balíček 2 nebo více vybraných kurzů a ušetřete

[24. 4. 2024] Webinář ZDARMA: Jak získat 82% příspěvek na školení statistiky přes MPSV

Pod vedením zakladatele Datové akademie Dávida Tkáče mj. zjistíte: