Tutoriál R/Import a export dat

Z WikiSkript

Než začneme něco řešit, ujistíme se, že máme správně nastaven pracovní adresář, viz Základy práce v RStudiu#Nastavení pracovního adresáře.

Práce s textovými daty[upravit | editovat zdroj]

Načtěte text z URL "https://predmety.fbmi.cvut.cz/cs/17VSADR" do proměnné my_html

my_html <- readLines( 
        con = paste( 
                "https://predmety.fbmi.cvut.cz", 
                "cs/17VSADR", 
                sep = "/"
        ),
        encoding = "UTF-8"
)

Uložte libovolný text do souboru my_text.txt a uložený text opět načtěte do proměnné my_loaded_text

writeLines(         # ukládám textový dokument
        text = paste( 
                "One R to rule them all",
                "one R to find them",
                "one R to bring them all",
                "and in the darkness bind them",
                sep = "\n"  # separátor typu nový řádek
        ),
        con = "my_text.txt"
)

my_loaded_text <- readLines( 
        con = "my_text.txt",
        encoding = "UTF-8"
) # načítám textový dokument

Uložte vestavěný data.frame mtcars do csv souboru a z něj jej načtěte do proměnné my_mtcars

write.table( 
        x = mtcars, 
        sep = ";",
        row.names = FALSE,
        file = "mtcars.csv"
)

my_mtcars <- read.table( file = "mtcars.csv", sep = ";", header = TRUE )
Tip.png
Tip: Co dalšího umí read.table a write.table

Obě funkce mají řadu wrapperů ( read.csv(), write.csv(), read.delim(), write.delim() a další).

Funkce read.table() má spoustu užitečných argumentů, např.:

nrows = 1 # načte jen první řádek
check.names = FALSE # vynechá kontrolu korektnosti popisků sloupců
colClasses = "character" # přetypuje všechny sloupce na textové proměnné
Tip.png
Tip: Co dalšího umí read.table a write.table

Práce se soubory Excelu[upravit | editovat zdroj]

Zadání[upravit | editovat zdroj]

Uložte vestavěnou tabulku mtcars do xlsx souboru a následně ji načtěte do tabulky my_data.

Řešení[upravit | editovat zdroj]

První část řešení je k dispozici zde - Export dat do MS Excelu. Načtení xlsx dat pak provedeme takto:

my_data<- read.xlsx( 
        xlsxFile = "moje_tabulka_je_ted_v_excelu.xlsx", 
        sheet = 1, # anebo jméno listu
        colNames = TRUE
)

Práce s obrázky[upravit | editovat zdroj]

Načtěte libovolný jpeg obrázek do proměnné my_picture

# bude se nám hodit některý z balíčků: png, jpeg, raster 
my_picture <- readJPEG( "__03_landmarky__.jpg" )
# výsledkem je array o třech rozměrech (svislá souřadnice, vodorovná souřadnice, barevné kanály)

Exportujte libovolný bitmapový obrázek

# budeme potřeboval balíček grDevices
jpeg( # anebo png()
        filename = "muj_diagram.jpg", 
        width = 6, # šířka (v daných jednotkách)
        height = 5, # výška (v daných jednotkách)
        units = "cm", # jednotky
        res = 600 # článkové rozlišení >= 600 ppi
)
plot(mpg ~ hp, mtcars)
dev.off() # ukončí proces exportu diagramu

Exportujte libovolný vektorový obrázek

# zajistí opět vestavěný balíček grDevices
cairo_ps( 
        file = "muj_vektorovy_diagram.eps",
        width = 10, # šířka (v násobcích pointsize)
        height = 10, # výška (v násobcích pointsize)
        pointsize = 14 # velikost bodu v ppi 
)
plot(mpg ~ hp, mtcars)
dev.off() # ukončí proces exportu diagramu

Export konzolového výstupu[upravit | editovat zdroj]

Exportujte libovolný výstup z konzole do textového souboru

# připravíme si něco pro zobrazneí na konzoli
(muzi <- rnorm(100, mean = 175, sd = 10)) 
(zeny <- rnorm(100, mean = 160, sd = 10))
t.test(muzi, zeny)

# výpis z konzole do textového souboru
capture.output( t.test(muzi, zeny), file = "t_test.txt" )

# anebo
sink("tohle_je_taky_t_test.txt") 
t.test(muzi, zeny)
sink()