Programovací jazyk R
a práce s ním

Vít Gabrhel

vit.gabrhel@mail.muni.cz

FSS MU,

18. 9. 2017

Harmonogram

 0. Organizace kurzu

 

 1. Konceptuální představení jazyka R  

 

 2. Instalace R a Rstudio, orientace v prostředí Rstudio, úvod do psaní kódu v R

 

 3. Základní operace – aritmetika, přiřazování proměnných, zjišťování  třídy proměnných

Organizace kurzu

Představení jazyka R

Co je R?

1) Programovací  jazyk umožňující tvorbu "statistického software" (tj. analýz)
 

 Vícenásobná lineární regrese

 Y' = a + bnXn

 Y'  = b0 + b1X1 + b2X2 + ... + bnXn + e

 

2) Prostředí pro provádění analýz a vizualizací

 

Představení jazyka R

"Historie" (R (programming language), n.d.)

 R je kombinací

 Programovacího jazyka S určeného pro analýzu dat (Bell Labs, J. Chambers, 1976)

 Lexikálního scopingu umožňujícího přiřazování dat k entitám označeným  jménem

 

R vyvinuli R. Ihaka a R. Gentleman z University of Auckland - první verze byla spuštěna v roce 1994

  • Název je slovní hříčkou - jednak parafrází na "S" a jednak odkazem na iniciály autorů

 

Představení jazyka R

Myšlenkové zázemí a současný kontext

 Principy R

 Open-Source a s ním související "svobody":

 Svoboda používat R pro jakékoliv účely včetně svobody studovat to, jak R  funguje a modifikovat ho svým vlastním potřebám.

 Svoboda šířit R a v nim vytvořené obsahy

 Svoboda zlepšovat R včetně sdílení těchto zlepšení komunitě.

  • Open source
  • Transparentnost
  • Komunita

Aktuální kontext:

  • Principy R a Replikační krize

 Bez záruk -> větší míra odpovědnosti na uživatele

Instalace R

R

Instalace Rstudio

Rstudio

Alternativy pro Rstudio

 Journal of Statistical Software (2012)  - Special Issue on Graphical  User Interfaces for R: 
 https://www.jstatsoft.org/issue/view/v049

Úvod do psaní kódu v R

Čísla a Texty

BitCoin = 3 + 4

CryptoCurrency <- c("Bitcoin", "Sichuan")
names(CryptoCurrency) <- c("Kryptoměna", "Provincie")

U textové proměnné je nutné používat uvozovky ("Proč nepoužíváš Python?")

 

#

Mřížka či hastag odděluje kód od komentáře

# Luděk má 3 BTC, Eleonora 4 ETH. Dohromady mají 7 jednotek kryptoměn.

CryptoCurrency = 3 + 4

Pozor na malá a velká písmena!

"=" a "->" jsou ekvivalentní formy zápisu

Úvod do psaní kódu v R

Psaní symbolů (např. "<") skrze pravý alt:

Pravý alt + další písmeno na klávesnici, např.:

  • alt + . = >
  • alt + f = [
  • alt + v = @

x = 3 + 4 versus 3 + 4 = y

Error in 3 + 4 = y : target of assignment expands to non-language object​

 

 Parametr (například vektor nebo datová matice) nemůže v jazyce R  začínat číslem. Řešení?

 

"7" = 3 + 4

Úvod do psaní kódu v R

 Jak si "uklidit" pracovní prostor?

Příkaz remove()

  • remove(CryptoCurrency)

Jak si "říct o pomoc"?

Symbol "?" před funkcí pro vyhledávání v dokumentaci R

  • ?remove

 

Symbol "??" před funkcí pro vyhledávání příkazu napříč knihovnami

  • ??remove

Sčítání: +
420 + 0 

[1] 420

 

Násobení: *

2 * 3

[1] 6


Umocňování: ^

16 ^ 2

[1] 256

Odčítání: -
333 - 12

[1] 321

 

Dělení: /

1 / 2

[1] 0.5 

 

Druhá odmocnina: sqrt(x)

sqrt(256)

[1] 16

Reprezentují hodnoty (např. "0" nebo "Hruška") nebo jiné objekty (např. proměnná jako objekt v rámci datové matice, dalšího objektu).

  • Skrze označení (name) je možné vyvolat hodnotu nebo sadu hodnot v tomto objektu

Bitcoin <- 3

Bitcoin

[1] 3

 

Etherium <- 4

Etherium

[1] 4

Kryptoměny = Bitcoin + Etherium

Kryptoměny

[1] 7

Numerické versus stringové objekty

Bitcoin = Jedna

Error: object 'Jedna' not found

Bitcoin = "Jedna"

Kryptoměny = Bitcoin + Etherium

Error in Jablka + Hrušky : non-numeric argument to binary operator

Předchozí příklady se týkaly vyvolání hodnoty. Co vyvolání sady hodnot?

  • Příkaz "c()" = sloučí "argumenty" (např. 1, 0.5 nebo "Muž") do jednoho vektoru, tedy sekvenci dat

# Nejdříve vytvoříme objekt se zeměmi, kde se "těží" kryptoměny:

  • Místo = c("Čína", "ČR", "GB", "Čína")
  • Místo

# Názvy sítí, kde se sdružují těžaři:

  • Síť = c("Antpool", "Slush", "Bitclub.Network", "Bixin")
  • Síť

 # Jaký je podíl zmíněných sítí na celku?

  • Podíl = c(25, 3, 5, 8)
  • Podíl

Třídy objektů

  • Decimals values like 4.5 are called numerics.
  • Natural numbers like 4 are called integers.
    • Integers are also numerics.
  • Boolean values (TRUE or FALSE) are called logical.
  • Text (or string) values are called characters.
    • Uvozovky ("") indikují, že nějaký text je "character"

# Vytvořte objekt my_numeric s hodnotou 23.1

my_numeric <- 23.1

 

# Vytvořte objekt my_character s hodnotou "universe"

my_character <- "Čína"

 

# Vytvořte objekt my_logical s hodnotou FALSE

my_logical <- FALSE

Typy objektů

Logical

Boolean values (TRUE or FALSE) are called logical.

 

as.logical - classifies 0 as FALSE and anything other than 0 as TRUE

  • Podíl = c(25, 3, 5, 8)
  • as.logical(Podíl)
    • [1] TRUE TRUE TRUE TRUE

is.logical - Create or test for objects of type "logical" 

  • Podíl = c(25, 3, 5, 8)
  • is.logical(Podíl)
    • [1] FALSE

Třídy objektů

Jak poznat třídu dat?

Funkce class():

  • class(my_numeric)
  • class(my_character)
  • class(my_logical)

class(my_numeric)

[1] "numeric"

 

class(my_character)

[1] "character"

 

class(my_logical)

[1] "logical"

Factor

treatment <- c("A", "A", "B", "B", "Placebo", "Placebo")

treatment.f <- as.factor(treatment)

class(treatment)
[1] "character"
class(treatment.f)
[1] "factor"

 is.factor(treatment)
 [1] FALSE
 is.factor(treatment.f)
 [1] TRUE

Zdroje

R (programming language). (n.d.). In Wikipedia. Staženo dne 18. 9. 2016 z
https://en.wikipedia.org/wiki/R_(programming_language)

 

Další čtení:

http://www.infoworld.com/article/2940864/application-development/r-programming-language-statistical-data-analysis.html

Cvičení

Reportujte vždy patřičnou část kódu.

Doporučené domény

Made with Slides.com