Rychlé načtení datasetu z Excelu do R
Autor návodu: Žaneta Vaníčková
Tento návod popisuje, jak načíst data z excelovské tabulky do prostředí jazyka R.
Použijeme v něm tyto příkazy:
1 2 3 |
data <- readClipboard() data <- read.table(file = 'clipboard', sep = "\t", header = TRUE, stringsAsFactors = FALSE) |
Jdeme na to
Soubor .xlsx je častou formou, ve které se k nám dostanou data, která potřebujeme vyhodnocovat pomocí R. Existuje řada balíčků (packages), díky kterým můžeme tyto data exportovat nebo importovat z nebo do prostředí R. Ale jak sami brzo zjistíte, nahrát data z excelu nemusí být vždy tak úplně jednoduché. Někteří proto ukládají soubor do formátu .csv a ten pak importují, protože s ním už tolik problému při nahrávání nebývá. Další z moznosti je integrovat R primo do excelu pomoci doplňku Rexcel.
Ukážeme si tedy postup, kterým tyto problémy (při rozumné velikosti dat) obejdeme a data načteme přímo z Excelu.
Použijeme k tomu funkci readClipboard, která umí načíst data ze schránky Windows - tedy načte to, co jste předtím v jiné aplikaci zkopírovali.
Vyzkoušíme si to na datasetu auta-1.xlsx, který můžete stáhnout odsud, ale použít můžete jakýkoliv jiný Excel.
Nejprve označte data, která chcete nahrát do R, a zkopírujte je (Ctrl + C).
Přejděte do R studia. V něm data potřebujete vložit. To uděláte tímto příkazem, který do dat načte obsah schránky WIndows:
1 2 3 |
data <- readClipboard() head(data) |
Funkce head() zobrazí prvních několik řádků dat.
1 2 3 4 5 6 7 8 9 10 11 |
## [1] "Značka\tModel\tCena\tBarva\tNa skladě od:" ## [2] "Peugeot\t307\t200 000 Kč\tStříbrná\t29.4.2015" ## [3] "Alfa Romeo\t159\t167 000 Kč\tStříbrná\t1.5.2015" ## [4] "Alfa Romeo\t146\t280 000 Kč\tStříbrná\t2.5.2015" ## [5] "Hyundai\ti20\t44 000 Kč\tStříbrná\t2.5.2015" ## [6] "Peugeot\t207\t184 000 Kč\tŽlutá\t2.5.2015" |
Pokud byste chtěli zobrazit všechna data, zapište jen:
1 2 |
data <- readClipboard() data |
Sloupce v Excelu jsou oddělené tabulátorem (\t). Funkce readClipboard() sama o sobě neumožňuje nastavit oddělovač, hodí se spíše pro rychlé načtení řádkových dat. Pro načtení tabulky tedy použijeme funkci read.table().
1 2 |
data <- read.table(file = 'clipboard', sep = "\t", header = TRUE, stringsAsFactors = FALSE) head(data) |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
## Značka Model Cena Barva Na.skladě.od. ## 1 Peugeot 307 200 000 Kč Stříbrná 29.4.2015 ## 2 Alfa Romeo 159 167 000 Kč Stříbrná 1.5.2015 ## 3 Alfa Romeo 146 280 000 Kč Stříbrná 2.5.2015 ## 4 Hyundai i20 44 000 Kč Stříbrná 2.5.2015 ## 5 Peugeot 207 184 000 Kč Žlutá 2.5.2015 ## 6 Škoda Yeti 162 000 Kč Modrá 2.5.2015 |
vysvětlení vstupních parametrů funkce read.table():
- file = ‘clipboard’ - zdroj dat nastavíme na clipboard
- sep = “\t” - oddělovačem sloupců je v excelu tabulátor
- header = TRUE - první řádek dat obsahuje názvy sloupců
- stringsAsFactors = FALSE - nebudeme používat datový typ factor