1. Úvod do jazyka R

Preložené z knihy An Introduction to Statistical Learning with Applications in R, od autorov Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani. Kapitola 2 - časť 2.3 Lab: Introduction to R.

Základné príkazy

R používa funkcie na vykonanie operácií. Na to aby sme volali funkciu napr. funkcmeno , tak musíme napísať funkcmeno (vstup1, vstup2), kde vstupy alebo argumenty povedia R ako majú spustiť funkciu. Napríklad pre vytvorenie vektora čísiel musíme použiť funkciu c() (pre concatenate - zlúčenie, zreťazenie). Všetky čísla vo vnútry zátvoriek sú spojené spolu. Nasledovný príkaz zreťazí čísla 1, 3, 2, a 5 a uloží ich do vektora s názvom x. Potom napíšeme x, a vráti nám to naspäť vektor.

In [380]:
x <- c(1, 3, 2, 5)
x
  1. 1
  2. 3
  3. 2
  4. 5

Uloženie do premenej sa vykonáva príkazom = namiesto <-.

In [381]:
x = c(1,6,2)
x
  1. 1
  2. 6
  3. 2
In [382]:
y = c(1,4,3)
y
  1. 1
  2. 4
  3. 3

Napísaným ?funkcmeno sa vždy spustí nové okno s dodatočnými informáciami o danej funkcii. V R môžeme pripočítať dve množiny čísiel spolu. Ono to pridá prvé číslo z x k prvému číslu z y a tak ďalej. Avšak, x a y by mali byť rovnakej veľkosti. Veľkosť môžeme zístiť pomocou funkcie length().

In [383]:
length(x)
3
In [384]:
length(y)
3
In [385]:
x+y
  1. 2
  2. 10
  3. 5

Funkcia ls() dovoľuje nám nazrieť na zoznam všetkých objektov, ako sú dáta a funkcie, ktoré sme doposial uložili. Funkcia rm() môže byť použitá na vymazanie toho čo už nepotrebujeme.

In [386]:
ls()
  1. 'A'
  2. 'Auto'
  3. 'cylinders'
  4. 'f'
  5. 'fa'
  6. 'x'
  7. 'y'
In [387]:
rm(x, y)
In [388]:
ls()
  1. 'A'
  2. 'Auto'
  3. 'cylinders'
  4. 'f'
  5. 'fa'

Tiež je možné vymazať všetky objekty naraz.

In [389]:
rm(list=ls())

Funkcia matrix() môže byť použitá na vytvorenie matice čísel. Pred tým než použijeme túto funkciu sa môžme o nej viac naučiť použitím príkazu ?matrix.

In [390]:
?matrix
matrix {base}R Documentation

Matrices

Description

matrix creates a matrix from the given set of values.

as.matrix attempts to turn its argument into a matrix.

is.matrix tests if its argument is a (strict) matrix.

Usage

matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,
       dimnames = NULL)

as.matrix(x, ...)
## S3 method for class 'data.frame'
as.matrix(x, rownames.force = NA, ...)

is.matrix(x)

Arguments

data

an optional data vector (including a list or expression vector). Non-atomic classed R objects are coerced by as.vector and all attributes discarded.

nrow

the desired number of rows.

ncol

the desired number of columns.

byrow

logical. If FALSE (the default) the matrix is filled by columns, otherwise the matrix is filled by rows.

dimnames

A dimnames attribute for the matrix: NULL or a list of length 2 giving the row and column names respectively. An empty list is treated as NULL, and a list of length one as row names. The list can be named, and the list names will be used as names for the dimensions.

x

an R object.

...

additional arguments to be passed to or from methods.

rownames.force

logical indicating if the resulting matrix should have character (rather than NULL) rownames. The default, NA, uses NULL rownames if the data frame has ‘automatic’ row.names or for a zero-row data frame.

Details

If one of nrow or ncol is not given, an attempt is made to infer it from the length of data and the other parameter. If neither is given, a one-column matrix is returned.

If there are too few elements in data to fill the matrix, then the elements in data are recycled. If data has length zero, NA of an appropriate type is used for atomic vectors (0 for raw vectors) and NULL for lists.

is.matrix returns TRUE if x is a vector and has a "dim" attribute of length 2) and FALSE otherwise. Note that a data.frame is not a matrix by this test. The function is generic: you can write methods to handle specific classes of objects, see InternalMethods.

as.matrix is a generic function. The method for data frames will return a character matrix if there is only atomic columns and any non-(numeric/logical/complex) column, applying as.vector to factors and format to other non-character columns. Otherwise, the usual coercion hierarchy (logical < integer < double < complex) will be used, e.g., all-logical data frames will be coerced to a logical matrix, mixed logical-integer will give a integer matrix, etc.

The default method for as.matrix calls as.vector(x), and hence e.g. coerces factors to character vectors.

When coercing a vector, it produces a one-column matrix, and promotes the names (if any) of the vector to the rownames of the matrix.

is.matrix is a primitive function.

The print method for a matrix gives a rectangular layout with dimnames or indices. For a list matrix, the entries of length not one are printed in the form integer,7 indicating the type and length.

Note

If you just want to convert a vector to a matrix, something like

  dim(x) <- c(nx, ny)
  dimnames(x) <- list(row_names, col_names)

will avoid duplicating x.

References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

data.matrix, which attempts to convert to a numeric matrix.

A matrix is the special case of a two-dimensional array.

Examples

is.matrix(as.matrix(1:10))
!is.matrix(warpbreaks)  # data.frame, NOT matrix!
warpbreaks[1:10,]
as.matrix(warpbreaks[1:10,])  # using as.matrix.data.frame(.) method

## Example of setting row and column names
mdat <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE,
               dimnames = list(c("row1", "row2"),
                               c("C.1", "C.2", "C.3")))
mdat

[Package base version 3.4.2 ]

Tento pomocný súbor nám prezradí to čo funkcia matrix() má za vstupy... ale pre začiatok sa sústredme na prvé tri: dáta (položky v matici), počet riadkov, a počet stĺpcov. Najprv vytvorme jednoduchú maticu.

In [391]:
x = matrix(data = c(1,2,3,4), nrow = 2, ncol = 2)
x
13
24

Poznámka: môžeme vynechať písanie znakov data=, nrow=, ncol=, v funkcii matrix().

In [392]:
x = matrix(c(1,2,3,4),2,2)

Spustenie príkazu bude mať rovnaký efekt. Avšak, to môže byť niekedy užitočné, keď chceme špecifikovať mená argumentov, ktoré vstupujú do funkcie. R predpokladá, že argumenty sú písané v rovnakom poradí ako je to v pomocnom súbore. V predošlom príklade R vytvorilo maticu úspešne vyplnením stĺpcov. Alternatívne použitím možnosti byrow=TRUE môžeme vyplniť maticu v poradí začinajúc riadkami namiesto stĺpcov.

In [393]:
matrix(c(1,2,3,4), 2, 2, byrow=TRUE)
12
34

Všimnite si, že horné príkazy nepriradili hodnotu matice do premennej x. V tomto prípade je matica len vypísaná na obrazovku, ale nie je uložená pre budúce výpočty. Funkcia sqrt() vráti odmocninu každého prvku vo vektore alebo v matici. Príkaz x^2 zvýši hodnotu každého prvku na mocninu dvoch. Každá mocnina je možná, zahrňujúc zlomky alebo záporné čísla.

In [394]:
sqrt(x)
1.0000001.732051
1.4142142.000000
In [395]:
x^2
1 9
4 16

Funkcia rnorm() vygeneruje vektor náhodných čísiel z normálového rozdelenia. Prvým argumentom funkcie je n - veľkosť generovanej vzorky dát. Zakaždým, keď sa volá táto funkcia, tak získame odlišné údaje. Teraz vytvoríme dve korelované množiny čísel, x a y, a použijeme funkciu cor() na vypočítanie korelácie medzi nimi.

In [396]:
x = rnorm(50)
y = x + rnorm(50, mean=50, sd=.1)
cor(x, y)
0.995528952267613

Defaultne funkcia rnorm() vytvorí štandardné normované náhodné premenné s priemerom 0 a štandardnou odchýlkou 1. Avšak, priemer a štandardná odchýlka môže byť zmenená použítím argumentov mean a sd, ako bolo ukazané vyššie. Niekedy chceme náš kód reprokukovať v presnej množine náhodných čísel. Na to, aby sme to spravili použijeme funkciu set.seed(). Táto funkcia berie integer resp. celé číslo ako argument.

In [397]:
set.seed(1145)
rnorm(10)
  1. -0.66665873790289
  2. -0.654642069234136
  3. -1.42140107683245
  4. 0.483480995715215
  5. -1.00532306074895
  6. 0.136343142886135
  7. 0.526771067636149
  8. 0.792280888740651
  9. 0.0994455449462068
  10. -1.49506512929208

Použijeme príkaz set.seed() napriek tomu, že vykonávame operácie s náhodnými údajmi. Vo všeobecnosti toto nám povoľuje zreprodukovateľnosť výsledkov používateľovi. Funkcie mean() a var() môžu byť použité na vypočítanie priemeru a odchýlky/rozptylu vektoru čísel. Aplikovaním funkcie sqrt() na výstup var() dostaneme štandardnú odchýlku. Alebo môžeme jednoducho použiť funkciu sd().

In [398]:
set.seed(3)
y = rnorm(100)
mean(y)
0.0110355710943715
In [399]:
var(y)
0.732867501277449
In [400]:
sqrt(var(y))
0.856076808047881
In [401]:
sd(y)
0.856076808047881

Grafika

Funkcia plot() je primárny spôsob na vykreslovanie údajov v R. Napríklad plot(x, y) produkuje scatterplot čísiel x verzus čísla z y. Je veľa dodatočných možností, ktoré môžu byť posunuté ako argument funkcii plot(). Napríklad agrument xlab označí výsledky na osi x-ovej. Príkazom ?plot zobrazíme ďalšie informácie o funkcii plot().

In [402]:
x = rnorm(100)
y = rnorm(100)
plot(x, y)
In [403]:
plot(x, y, xlab="Toto je x-ová os", ylab="Toto je y-ová os", main="Graf X vs Y")

Veľmi často budeme potrebovať uložiť výsledok grafu. Príkaz na to bude zaležať na type súboru, ktorý chceme vytvoriť. Napríklad na to, aby sme vytvorili pdf súbor, tak použijeme funkciu pdf(), a ďalej môžme vytvoriť aj jpg súbor použiťím funkcie jpeg().

In [404]:
pdf("ISLR - 1. Úvod do jazyka R - Graf.pdf")
plot(x, y, col = "green")
dev.off()
png: 2

Funkcia dev.off() indikuje R to, že sme skončili s vytváraním grafu. Alternatívne môžeme jednoducho skopírovať graf a prilepiť to do vhodného súborového typu, ako napríklad dokument Word.

Funkcia seq() môže byť použitá na vytvorenie sequencie/postupnosti čísel Napríklad, seq(a, b) vytvorí vektor čísiel v rozsahu od a do b. Existuje veľa ďalších možností: napríklad, seq(0, 1, length=10) vytvorí sekvenciu 10 čísliel, ktoré sú rovnako rozdelené medzi 0 a 1. Napísaním 3:11 je skratka pre príkaz seq(3, 11) pre celočíslené argumenty.

In [405]:
x = seq(1, 10)
x
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
In [406]:
x = 1:10
x
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
In [407]:
x = seq(-pi, pi, length = 10)
x
  1. -3.14159265358979
  2. -2.44346095279206
  3. -1.74532925199433
  4. -1.0471975511966
  5. -0.349065850398866
  6. 0.349065850398866
  7. 1.0471975511966
  8. 1.74532925199433
  9. 2.44346095279206
  10. 3.14159265358979

Teraz vytvoríme viac sofistikovanejšie grafy. Funkcia contour() vyprodukuje vrstevnicový graf, ktorý reprezentuje troj-dimenzionálne dáta. Je podobné topografickej mape. Do funkcie sa zadavájú tri argumenty:

  1. Vektor x hodnôt (prvá dimenzia).
  2. Vektor y hodnôt (druhá dimenzia).
  3. Matica, ktorej prvky sú zhodné / korešpondujú s z hodnotou (tretia dimenzia) pre každý pár z (x, y) súradníc.

Ako s funkciou plot(), existuje veľa iných vstupov, ktoré môžu vyladiť výstupný graf funkcie contour(). Pre zistenie ďalších vlastností funkcie si môžete pozrieť pomocný text zadaním príkazu ?contour.

In [408]:
y = x
f = outer(x, y, function(x, y)cos(y)/(1 + x^2))     
contour(x, y, f)
In [409]:
pdf("ISLR - 1. Úvod do jazyka R - Graf Contour.pdf")
contour(x, y, f, nlevels = 45)
dev.off()     
contour(x, y, f, nlevels = 45)
png: 2
In [410]:
fa = (f - t(f)) / 2 
contour(x, y, fa, nlevels = 15)

Funkcia image() funguje podobným spôsobom ako funkcia contour(), až na to, že produkuje farebne-kódovaný graf, ktorého farby záležia od hodnoty z. Tento graf je známy pod pojmom heatmap, a môže byť niekedy použitý ako graf teplot v predpovedí počasia. Alternatívne, funkcia persp() môže byť použitá na produkovanie troj-dimenzionálneho grafu. Argumenty theta, phi nastavujú uhly pod ktorým je graf zobrazený.

In [411]:
image(x, y, fa)
In [412]:
persp(x, y, fa)
In [413]:
persp(x, y, fa, theta = 30)
In [414]:
persp(x, y, fa, theta = 30, phi = 20)
In [415]:
persp(x, y, fa, theta = 30, phi = 70)
In [416]:
persp(x, y, fa, theta = 30, phi = 40)

Indexovanie dát

Pri spracovaní dát potrebujeme aj pristupovať k časti množiny dát. Predpokladajme, že naše dáta sú uložené v matici A.

In [417]:
A = matrix( 1:16, 4, 4)

Potom, napísaním

In [418]:
A[2, 3]
10

vyberieme prvok korešpondejúci druhý riadeok a tretí stĺpec. Prvé číslo potom je v po zátvorke [ vždy referuje riadku, a druhé číslo vždy sa spája so stĺpcom. Môžeme vybrať mnoho riadkov a stĺpcov v jednom čase, zabezpečujúc vektory ako indexy.

In [419]:
A[c(1,3), c(2,4)]
5 13
7 15
In [420]:
A[1:3, 2:4]
5 913
6 1014
7 1115
In [421]:
A[1:2, ]
1 5 913
2 6 1014
In [422]:
A[ , 1:2 ]
15
26
37
48

Posledné dva príklady zahrňajú buď žiadny index pre stĺpce, alebo žiadny index pre riadky. Tieto indikujú to, že R by mal zahnúť všetky stĺpce alebo všetky riadky respektívne. R spracováva jeden riadok alebo stĺpec matice ako vektor.

In [423]:
A[1, ]
  1. 1
  2. 5
  3. 9
  4. 13

Keď použijeme záporné znamienko, index povie R aby nechal všetky riadky alebo stĺpce okrem tých ktoré naznačujú index.

In [424]:
A[ -c( 1, 3), ]
2 6 1014
4 8 1216

Funkcia dim() dá počet riadkov nasledovaný číslom stĺpcov v danej matici.

In [425]:
dim(A)
  1. 4
  2. 4

Načítanie Dát

Pre väčšinu analýz, prvý krok je importovanie dátovej množiny do R. Funkcia read.table() je jedna z primárnych spôsobom načínia dát. Na exportovanie dát sa používa funkcia write.table().

Pred načítaním dátovej množiny sa musíme ujistiť, že R vie kde sa nachádzajú tie súbory. V tomto príklade začneme načítavaním dátovej množiny Auto. Tieto dáta sú súčasťou ISLR knižnice. Ale na ukážku načítavania dát, tak tieto dáta načítame zo súboru. Funkcia read.table() načíta dáta zo súboru Auto.data do R a uloží to ako objekt, ktorý pomenujeme Auto, a vo formáte referovanom ako data frame. Raz keď sú dáta načítané, tak voláme funkciu fix() na zobrazenie ukážky načtaných dát zobrazených v samostatnom okne v podobe tabuľky.

In [426]:
Auto = read.table("Auto.data")
In [427]:
fix(Auto)

Táto dátova množina nebola správne načítaný, pretože R predpokladal, že názov premenných je súčasťou dát a zahrnul ich v prvom riadku. Tento dáta tiež obsahujú niekoľko chýbajúcih údajov, ktoré sú označené znakom otáznika ? . Chýbajúce hodnoty sa často vyskytujú v reálnych dátových množinách. Použitím voľby header=TRUE vo funkcii read.table(), R urobí to, že prvý riadok v súbore, ktorý obsahuje názvy premenných, a použitím voľby na.string urobí R to, že za každým, keď uvidí chýbajúci údaj alebo znak ?, tak s týmto údajom bude zaobchádzať ako s chýbajúcim prvkom v dátovej množine.

In [428]:
Auto = read.table("Auto.data", header = TRUE, na.string = "?")
In [429]:
fix(Auto)

Excel je najčastejší formát ukladania dát. Dá sa jednoducho načítať do R a uložiť ako ako csv (comma separated value) súbor a potom načítať ich pomocou funkcie read.csv().

In [430]:
Auto = read.csv("Auto.csv", header = TRUE, na.string= "?" )
In [431]:
fix(Auto)
In [432]:
dim(Auto)
  1. 397
  2. 9
In [433]:
Auto[1:4, ]
mpgcylindersdisplacementhorsepowerweightaccelerationyearoriginname
18 8 307 130 3504 12.0 70 1 chevrolet chevelle malibu
15 8 350 165 3693 11.5 70 1 buick skylark 320
18 8 318 150 3436 11.0 70 1 plymouth satellite
16 8 304 150 3433 12.0 70 1 amc rebel sst

Funkcia dim() nám povie, že dáta majú 397 záznamov, alebo riadkov, a deväť premenných/variables, alebo stĺpcov. Je niekoľko spôsobom ako si poradiť s chýbajúcimi dátmi. V tomto prípade máme len 5 riadkov, ktoré obsahujú chýbajúce záznamy a tak vyberieme funkciu na.omit(), ktorá jednoducho vymaže dané riadky.

In [434]:
Auto = na.omit(Auto)
In [435]:
dim(Auto)
  1. 392
  2. 9

Raz keď sú dáta načítané správne, môžeme zavolať funkciu na.omit(), ktorá skontroluje a vypíše názvy premenných.

In [436]:
names(Auto)
  1. 'mpg'
  2. 'cylinders'
  3. 'displacement'
  4. 'horsepower'
  5. 'weight'
  6. 'acceleration'
  7. 'year'
  8. 'origin'
  9. 'name'

Dodatočné grafické a numerické zhrnutie

Môžeme použiť funkciu plot() na vyprodukovanie scatterplots kvantitatívnych premenných. Avšak, jednoducho keď napíšeme názvy premenných, tak sa objavý chybná hláška, pretože R nevie sa pozrieť do Auto dátovej množiny pre tieto premenné.

plot(cylinders, mpg) Error in plot(cylinders, mpg): object 'cylinders' not found

Traceback:

  1. plot(cylinders, mpg)</code>

Na to aby sme odkazovali na premennú, musíme napísať dátovú množinu a názov premennej s znakom $. Alternatívne môžeme použiť funkciu attach() na to, aby povedalo R, aby vyrobilo premenné v tejto dátovej množine, ak sú prístupne menom.

In [437]:
plot(Auto$cylinders, Auto$mpg)
In [438]:
attach(Auto)
The following objects are masked from Auto (pos = 3):

    acceleration, cylinders, displacement, horsepower, mpg, name,
    origin, weight, year

The following objects are masked from Auto (pos = 4):

    acceleration, cylinders, displacement, horsepower, mpg, name,
    origin, weight, year

The following objects are masked from Auto (pos = 5):

    acceleration, cylinders, displacement, horsepower, mpg, name,
    origin, weight, year

In [439]:
plot(cylinders, mpg)

Premenná cylinders je uložená vektor čísel, tak R s ňou zaobchádza ako s kvantitatívnou (veľkostnou) hodnotou. Avšak, keďže je malý počet možných hodnôt cylinderov, tak je lepšie ak sa s nimi bude zaobchádzať ako kvalitatívnymi premennými. Funkcia as.factor() konvertuje kvantitatívnu premennú na kvalitatívnu.

In [440]:
cylinders = as.factor(cylinders)

Ak je premenná v grafe na x-ovej osy ako kategorická premenné tak boxplots budú automaticky produkované funkciou plot(). Ako zvyčajne, voľby čísiel môžu byť špecificky zmenené v grafe.

In [441]:
plot(cylinders, mpg)
In [442]:
plot(cylinders, mpg, col = "red")
In [443]:
plot(cylinders, mpg, col = "red", varwidth=TRUE)
In [444]:
plot(cylinders, mpg, col = "red", varwidth = TRUE, horizontal = TRUE)
In [445]:
plot(cylinders, mpg, col = "red", varwidth=TRUE, xlab = "cylinders")

Funkcia hist() môže byť použitá na vykreslenie histogramu. Berte do úvahy, že col=2 má rovnaké správanie ako col="red"

In [446]:
hist(mpg)
In [447]:
hist(mpg, col = 2)
In [448]:
hist(mpg, col = 2, breaks = 15)

Funkcia pairs() vytvorí scatterplot maticu, to je pr každý pár premenných v danej dátovej množine. Môžeme vyprodukovať scatterplot aj len pre podmnožinu premenných.

In [449]:
pairs(Auto)
In [450]:
pairs(~ horsepower + weight + acceleration, Auto)
In [451]:
pairs(~ mpg + displacement + horsepower + weight + acceleration, Auto)

Spojenie kombinácií alebo priesečník funkcií plot() , identify() dokáže vytvoriť užitočnú interaktívnu metódu na identifikovanie hodnoty pre určitú premennú pre dané body na grafe. Do funkcie indentify() vstupujú tri argumenty: premenná osi x, premenná osi y, a pemenná tých hodnôt, ktoré chceme vypísať pre každý bod. Potom klikneme na daný bod v grafe a R vypíše hodnotu premennej ktorá nás zaujíma. Pravým kliknutím na graf ukončíme funkciu identify(). Čísla sú vypísané pod funkciu identify() korešpondujúc s riadkami pre zvolené body.

In [452]:
plot(horsepower, mpg)
identify(horsepower,mpg,name)

Funkcia summary() produkuje numerické prehľadové zhrnutie každej premennej v danej dátovej množine.

In [453]:
summary(Auto)
      mpg          cylinders      displacement     horsepower        weight    
 Min.   : 9.00   Min.   :3.000   Min.   : 68.0   Min.   : 46.0   Min.   :1613  
 1st Qu.:17.00   1st Qu.:4.000   1st Qu.:105.0   1st Qu.: 75.0   1st Qu.:2225  
 Median :22.75   Median :4.000   Median :151.0   Median : 93.5   Median :2804  
 Mean   :23.45   Mean   :5.472   Mean   :194.4   Mean   :104.5   Mean   :2978  
 3rd Qu.:29.00   3rd Qu.:8.000   3rd Qu.:275.8   3rd Qu.:126.0   3rd Qu.:3615  
 Max.   :46.60   Max.   :8.000   Max.   :455.0   Max.   :230.0   Max.   :5140  
                                                                               
  acceleration        year           origin                  name    
 Min.   : 8.00   Min.   :70.00   Min.   :1.000   amc matador   :  5  
 1st Qu.:13.78   1st Qu.:73.00   1st Qu.:1.000   ford pinto    :  5  
 Median :15.50   Median :76.00   Median :1.000   toyota corolla:  5  
 Mean   :15.54   Mean   :75.98   Mean   :1.577   amc gremlin   :  4  
 3rd Qu.:17.02   3rd Qu.:79.00   3rd Qu.:2.000   amc hornet    :  4  
 Max.   :24.80   Max.   :82.00   Max.   :3.000   ford maverick :  4  
                                                 (Other)       :365  

Pre kvalitatívne premenné ako napríklad name, R vytorí zoznam počtu záznamov, ktoré patria do daných kategórií. Môžeme tiež vyprodukovať zhrnutie aj jednej premennej.

In [454]:
summary(mpg)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   9.00   17.00   22.75   23.45   29.00   46.60 

Na záver

Keď sme už dokončili prácu s R, tak zavoláme funkciu g() na to, aby R vypla a ukončila. Keď už existujúce R je spustené, tak máme možnosť uložiť súčastný workspace so všekými objektmi a dátovými množinami, ktoré sme vytvorili v danej R relácií, a toto bude prístupné pri ďalšej návšteve. Pred skončením R, možno chceme uložiť záznam všetkých príkazov, ktoré sme napísali, a toto môže byť spravené funkciou savehistory(). Pri návrate môžete načítať históriu volaním funkcie loadhistory().

In [455]:
q()