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:"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

## [2] "Peugeot\t307\t200 000 Kč\tStříbrná\t29.4.2015"&nbsp;

## [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"&nbsp;&nbsp;&nbsp;

## [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:

1 Komentář

  1. 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

Komentáře není možné přidávat