Rychlé načtení datasetu z Excelu do R
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
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:
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:
data <- readClipboard() head(data)
Funkce head() zobrazí prvních několik řádků dat.
## [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:
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().
data <- read.table(file = 'clipboard', sep = "\t", header = TRUE, stringsAsFactors = FALSE) head(data)
## 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
Kurzy, na kterých se věnujeme jazyku R:
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
dobrý den, děkuji za návod, chci se prosím zeptat, pokud bych chtěl využívat modul Rexcel, tak si musím zakoupit licenci nebo to můžu využívat zdarma? Předem děkuji za odpověď.
S pozdravem
JŠ