Deklaracija promjenljive
Operator dodjele u R-u je “<-” (ali moze da se koristi i “=”)

x<-9    

Za pokretanje linije koda: Ctrl+Enter
Postoji i operator “->” za dodjelu sa druge strane

9->x

Elementarne funkcije: exp(), cos(), sin(), log(), ..
Aritmeticki operatori: +,-,*,/
Logicki operatori: <=, >=, ==, !=, <, >, & (AND), | (OR), ! (NOT)

Vektori

U R-u postoji mnostvo funkcija za rad sa vektorima tako da je pozeljno podaci cuvaju vidu vektora (ili matrica )

Neki od nacina zadavanje vektora:

numeric.vec <- c(1, 10, 49)
character.vec <- c("a", "b", "c")
boolean.vec <-c(TRUE, FALSE)

vec<-rep(0,10)
vec<-rep(c(1,2,3),3)

vec<-seq(1,5)
vec<-seq(0,1,0.1)
vec<-seq(9,1,-1)
vec<-seq(1, 5, length.out=4) 

vec<-1:9

for petlja (izbjegavati gdje god moze)

vec<-numeric(10)

for( i in 1:10){
  
  vec[i]<-i^2
  
}

Operacije sa vektorima

a<-1:5
b<-c(3,4,5,6,7)

Aritmeticke operacije

5*a         
## [1]  5 10 15 20 25
a+b
## [1]  4  6  8 10 12
a-b
## [1] -2 -2 -2 -2 -2
a*b
## [1]  3  8 15 24 35
a/b
## [1] 0.3333333 0.5000000 0.6000000 0.6666667 0.7142857

Logicke operacije

a==b 
## [1] FALSE FALSE FALSE FALSE FALSE
a>b
## [1] FALSE FALSE FALSE FALSE FALSE
a<=5
## [1] TRUE TRUE TRUE TRUE TRUE

Ako hocemo da poredimo cijela dva vektora

all(a==b)
## [1] FALSE
all(a==a)
## [1] TRUE

Ako dva vektora nisu iste duzine, vrijednosti kraceg vektora se ponavljaju ciklicno tako dok se ne pogode iste dimenzije sa duzim vektorom

u<-c(10, 20, 30) 
v<-c(1, 2, 3, 4, 5, 6, 7, 8, 9) 
u + v 
## [1] 11 22 33 14 25 36 17 28 39

I funkcije u R-u su vektorske (primjenjuje se na svaki clan vektora)

cos(a)
## [1]  0.5403023 -0.4161468 -0.9899925 -0.6536436  0.2836622
log(a)
## [1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379

Pristupanje vektoru

Indeksiranje vektora pocinje od jedinice!
Vektoru pristupamo tako sto unutar uglastih zagrada upisemo poziciju trazene vrijednosti

v[3]
## [1] 3

Mozemo da izdvojimo i neke cijele vektore

v[c(1,2)]
## [1] 1 2
v[c(3,4,5)]
## [1] 3 4 5
v[2:4]
## [1] 2 3 4
v[c(2,1,3)]
## [1] 2 1 3
v[v<5]
## [1] 1 2 3 4
v[v!=8]
## [1] 1 2 3 4 5 6 7 9

Ako stavimo negativan predznak indeksu rezultat je originalni vektor umanjen za clan na poziciji koja odgovara apsolutnoj vrijednosti broja u zagradi

v[-4]
## [1] 1 2 3 5 6 7 8 9
v[-c(5,7)]
## [1] 1 2 3 4 6 8 9
v[-(1:3)]  # Napomena: ":" ima manji prioritet od aritmetickih operacija 
## [1] 4 5 6 7 8 9

Novi vektor moze se izdvojiti iz datog vektora uz pomoc vektora sa logickim vrijednostima koji je iste duzine kao originalni. Njegovi clanovi su TRUE (ili T) ako odgovarajuci clan u orignalnom vektoru treba da bude izdvojen, odnosno FALSE (ili F) u suprotnom.

s<-c("a","b","c","d")
l<-c(T,F,T,F)
s[l]
## [1] "a" "c"

Mozemo da dodamo imena clanovima vektora

v<-c("Ivo", "Andric")
names(v)<-c("Ime","Prezime")
v
##      Ime  Prezime 
##    "Ivo" "Andric"

Zatim mozemo da pristupimo elementima po imenu

v["Ime"]
##   Ime 
## "Ivo"

Neke funkcije nad vektorima

vec<-rev(vec) # obrce redosled clanova vektora
length(vec)
## [1] 10

Vazne statistike

sum(vec)      
## [1] 385
min(vec)      
## [1] 1
max(vec)     
## [1] 100
range(vec)   
## [1]   1 100
mean(vec)    
## [1] 38.5
var(vec)     
## [1] 1167.833
sd(vec)       
## [1] 34.17358

Sortiranje

sort(vec)
##  [1]   1   4   9  16  25  36  49  64  81 100
sort(vec, decreasing = TRUE)
##  [1] 100  81  64  49  36  25  16   9   4   1

Izmjene u vektoru

vec[2] <- 0    
vec[vec<5]<-1
vec<-vec[1:4]

Matrice

M <- matrix( 
    c(2, 4, 3, 1, 5, 7), 
    nrow=2,              
    ncol=3,              
    byrow = TRUE)        # popunjavamo matrice po redovime (po default-u je po kolonama)
M[2,3]      
## [1] 7
M[2,]       # drugi red
## [1] 1 5 7
M[,3]       # druga kolona 
## [1] 3 7
M[, c(1,2)] 
##      [,1] [,2]
## [1,]    2    4
## [2,]    1    5

Funkcije

Sintaksa za pisanje funkcija

# func.name<- function (argument) {
  
#         statement
# }

“Function” je rezervisana rijec za deklaraciju funkcije.
Izrazi u okviru viticastih zagrada cine tijelo funkcije (zagrade su opcione ako tijelo sadrzi samo jeda izraz.
Konacno, funkcija se poziva sa func.name(argumenti).

Primjeri

pow <- function(x, y) {
  
  result <- x^y

  print(paste(x,"na stepen", y, "je", result))

  }

Ako zelimo da funkcija vrati neki rezultat

pow2 <- function(x, y) {
  
  result <- x^y
  
  return(result)
  
}

Pozivanje funkcije

pow(2,3)
## [1] "2 na stepen 3 je 8"
pow2(2,3)
## [1] 8

Ili..

pow(x=2, y=3)
## [1] "2 na stepen 3 je 8"
pow(y=3, x=2)  #nije bitan redosled argumenata u ovom slucaju
## [1] "2 na stepen 3 je 8"

if/else

x<-5
if(x%%2==0) {print("x je paran")
} else  print("x je neparan")
## [1] "x je neparan"

Moze i u jednom redu

ifelse(x%%2==0, print("x je paran"), print("x je neparan"))
## [1] "x je neparan"
## [1] "x je neparan"

Liste
Lista je genericki vektor koji sadrzi druge objekte.

n<-c(2, 3, 5) 
s<-c("aa", "bb", "cc", "dd", "ee") 
b<-c(TRUE, FALSE, TRUE, FALSE, FALSE) 
lst<-list(n, s, b)   # lst sadrzi  kopije od n, s, b

lst[1] #niz n
## [[1]]
## [1] 2 3 5
lst[2] #niz s
## [[1]]
## [1] "aa" "bb" "cc" "dd" "ee"

Na ovaj nacin dobijamo kopije prvog, odnosno drugog clana liste
Medjutim ako hocemo da direktno pristupimo clanu liste koristimo “[[.]]”

lst[[1]]   # Vazno!
## [1] 2 3 5

Tada mozemo da mijenjamo sadrzaj liste

lst[[2]]<-c("a","b")
lst[[2]][1]<-"c"

Graficko prikazivanje podataka

plot()

paketi: ggplot2, plotly …

cars <- c(1, 3, 6, 4, 9)
trucks <- c(2, 5, 4, 5, 12)
plot(cars, type="o", col="blue", ylim=c(0,12))
lines(trucks, type="o", pch=22, lty=2, col="red")
title(main="Auto", col.main="pink", font.main=4)

x<-sin(1:10)
y<-log(1:10)

plot(x,y)

Slucajnost u R-u (pseudo-slucajnost)

Funkcija sample()
U svom najjednostavnijem obliku, funkcija sample permutuje zadati niz na slucajan nacin

x<-1:10
sample(x)
##  [1]  4  2  8  3  6  5  7  9 10  1
sample(10)  # je poziv ekvivalentan prethodnom 
##  [1]  6  8  5  7  3 10  2  9  1  4

Ova funkcija ima argument replace cija je vrijednost po defaultu FALSE, sto znaci da se simulira slucajno biranje brojeva bez ponavljanja.
Ako proslijedimo vrijednost TRUE funkcija vraca slucajan uzorak sa ponavljanjem.
Jos jedan argument je prob (odnosno probability) i on je po defaultu NULL, a mozemo da zadamo neke tezine (vjerovatnoce) elementima skupa.
Argument size odredjuje koliko elemenata biramo iz proslijedjenog vektora. Napomena: Zbog gore pomenuta dva nacina zadavanja moze da dodje do zabune prilikom sledecih izraza

sample(x[x > 8])  #izlaz: vektor duzine 2
## [1] 10  9
sample(x[x > 9])  #izlaz: vektor duzine 10
##  [1]  2  5  3  7  6  4 10  1  8  9

Hocemo da simuliramo bacanje novcica

coin <- c("Heads", "Tails")
sample(coin, size = 1)
## [1] "Tails"

Sada zelimo 100 simulacija ovog slucajnog eksperimenta

#sample(coin, size = 100)

!!Prijavice gresku jer se po defaultu bira uzorak bez ponavljanja

sample(coin, size = 1000, replace = TRUE)
##    [1] "Heads" "Heads" "Tails" "Heads" "Heads" "Heads" "Heads" "Tails"
##    [9] "Heads" "Heads" "Heads" "Heads" "Heads" "Tails" "Heads" "Tails"
##   [17] "Tails" "Heads" "Tails" "Tails" "Heads" "Tails" "Heads" "Heads"
##   [25] "Heads" "Heads" "Heads" "Heads" "Tails" "Heads" "Tails" "Tails"
##   [33] "Heads" "Heads" "Tails" "Tails" "Heads" "Tails" "Tails" "Heads"
##   [41] "Tails" "Tails" "Tails" "Heads" "Heads" "Heads" "Tails" "Heads"
##   [49] "Tails" "Heads" "Heads" "Heads" "Tails" "Heads" "Heads" "Heads"
##   [57] "Heads" "Tails" "Tails" "Tails" "Heads" "Tails" "Tails" "Tails"
##   [65] "Tails" "Heads" "Heads" "Tails" "Tails" "Tails" "Heads" "Tails"
##   [73] "Tails" "Heads" "Heads" "Tails" "Tails" "Tails" "Tails" "Tails"
##   [81] "Tails" "Tails" "Heads" "Heads" "Tails" "Tails" "Tails" "Heads"
##   [89] "Heads" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails" "Tails"
##   [97] "Tails" "Tails" "Tails" "Tails" "Heads" "Heads" "Heads" "Heads"
##  [105] "Heads" "Heads" "Heads" "Tails" "Tails" "Tails" "Heads" "Heads"
##  [113] "Heads" "Tails" "Tails" "Heads" "Tails" "Heads" "Tails" "Heads"
##  [121] "Tails" "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Tails"
##  [129] "Tails" "Heads" "Tails" "Heads" "Tails" "Heads" "Tails" "Tails"
##  [137] "Tails" "Heads" "Heads" "Heads" "Tails" "Heads" "Heads" "Heads"
##  [145] "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Heads" "Heads"
##  [153] "Heads" "Tails" "Tails" "Tails" "Heads" "Tails" "Heads" "Tails"
##  [161] "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Tails" "Heads"
##  [169] "Tails" "Tails" "Heads" "Heads" "Tails" "Tails" "Heads" "Heads"
##  [177] "Tails" "Tails" "Heads" "Tails" "Heads" "Heads" "Tails" "Heads"
##  [185] "Heads" "Tails" "Heads" "Heads" "Tails" "Heads" "Heads" "Heads"
##  [193] "Heads" "Tails" "Heads" "Heads" "Tails" "Heads" "Tails" "Tails"
##  [201] "Tails" "Heads" "Tails" "Heads" "Tails" "Tails" "Heads" "Heads"
##  [209] "Heads" "Heads" "Heads" "Tails" "Heads" "Tails" "Heads" "Tails"
##  [217] "Tails" "Heads" "Heads" "Heads" "Tails" "Tails" "Tails" "Tails"
##  [225] "Tails" "Tails" "Tails" "Heads" "Tails" "Heads" "Heads" "Tails"
##  [233] "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Heads" "Tails"
##  [241] "Tails" "Heads" "Tails" "Heads" "Heads" "Tails" "Heads" "Tails"
##  [249] "Tails" "Tails" "Tails" "Tails" "Heads" "Tails" "Tails" "Heads"
##  [257] "Tails" "Heads" "Tails" "Heads" "Heads" "Heads" "Heads" "Tails"
##  [265] "Heads" "Heads" "Tails" "Tails" "Tails" "Heads" "Heads" "Heads"
##  [273] "Heads" "Tails" "Heads" "Tails" "Heads" "Tails" "Heads" "Tails"
##  [281] "Heads" "Tails" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails"
##  [289] "Heads" "Heads" "Heads" "Tails" "Tails" "Tails" "Tails" "Heads"
##  [297] "Tails" "Heads" "Tails" "Heads" "Heads" "Tails" "Heads" "Heads"
##  [305] "Tails" "Tails" "Heads" "Tails" "Heads" "Heads" "Heads" "Heads"
##  [313] "Tails" "Heads" "Heads" "Tails" "Tails" "Tails" "Heads" "Tails"
##  [321] "Heads" "Heads" "Tails" "Tails" "Tails" "Heads" "Heads" "Tails"
##  [329] "Heads" "Tails" "Tails" "Tails" "Heads" "Heads" "Heads" "Heads"
##  [337] "Tails" "Tails" "Heads" "Heads" "Tails" "Heads" "Heads" "Heads"
##  [345] "Heads" "Heads" "Tails" "Tails" "Tails" "Tails" "Heads" "Tails"
##  [353] "Heads" "Heads" "Heads" "Tails" "Tails" "Tails" "Tails" "Tails"
##  [361] "Heads" "Heads" "Heads" "Heads" "Heads" "Tails" "Tails" "Heads"
##  [369] "Heads" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails" "Tails"
##  [377] "Heads" "Tails" "Tails" "Tails" "Tails" "Tails" "Heads" "Heads"
##  [385] "Heads" "Heads" "Heads" "Tails" "Tails" "Tails" "Heads" "Tails"
##  [393] "Heads" "Heads" "Tails" "Heads" "Heads" "Heads" "Heads" "Tails"
##  [401] "Tails" "Heads" "Tails" "Heads" "Heads" "Heads" "Heads" "Heads"
##  [409] "Tails" "Tails" "Heads" "Heads" "Heads" "Tails" "Heads" "Tails"
##  [417] "Tails" "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Tails"
##  [425] "Tails" "Heads" "Heads" "Heads" "Tails" "Tails" "Heads" "Tails"
##  [433] "Tails" "Tails" "Heads" "Heads" "Tails" "Heads" "Tails" "Heads"
##  [441] "Heads" "Heads" "Heads" "Heads" "Heads" "Tails" "Heads" "Tails"
##  [449] "Tails" "Heads" "Heads" "Heads" "Heads" "Tails" "Tails" "Tails"
##  [457] "Tails" "Heads" "Tails" "Tails" "Heads" "Tails" "Tails" "Tails"
##  [465] "Heads" "Heads" "Heads" "Heads" "Tails" "Tails" "Tails" "Heads"
##  [473] "Tails" "Tails" "Tails" "Tails" "Tails" "Tails" "Tails" "Heads"
##  [481] "Tails" "Heads" "Tails" "Heads" "Tails" "Heads" "Heads" "Tails"
##  [489] "Tails" "Heads" "Heads" "Heads" "Heads" "Heads" "Heads" "Tails"
##  [497] "Tails" "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Heads"
##  [505] "Tails" "Tails" "Heads" "Tails" "Heads" "Tails" "Tails" "Tails"
##  [513] "Tails" "Tails" "Heads" "Heads" "Tails" "Tails" "Heads" "Tails"
##  [521] "Heads" "Heads" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails"
##  [529] "Heads" "Tails" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails"
##  [537] "Heads" "Heads" "Tails" "Tails" "Heads" "Heads" "Heads" "Tails"
##  [545] "Tails" "Heads" "Tails" "Heads" "Heads" "Tails" "Tails" "Heads"
##  [553] "Tails" "Heads" "Heads" "Tails" "Tails" "Heads" "Heads" "Tails"
##  [561] "Heads" "Tails" "Tails" "Tails" "Heads" "Heads" "Heads" "Tails"
##  [569] "Heads" "Heads" "Heads" "Heads" "Tails" "Tails" "Tails" "Tails"
##  [577] "Heads" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails" "Heads"
##  [585] "Tails" "Heads" "Tails" "Heads" "Heads" "Tails" "Tails" "Heads"
##  [593] "Heads" "Tails" "Tails" "Tails" "Tails" "Tails" "Heads" "Tails"
##  [601] "Tails" "Tails" "Heads" "Tails" "Heads" "Heads" "Tails" "Tails"
##  [609] "Heads" "Tails" "Heads" "Heads" "Heads" "Heads" "Heads" "Heads"
##  [617] "Tails" "Heads" "Tails" "Tails" "Tails" "Heads" "Heads" "Heads"
##  [625] "Tails" "Heads" "Tails" "Heads" "Tails" "Heads" "Heads" "Tails"
##  [633] "Tails" "Heads" "Tails" "Heads" "Tails" "Heads" "Tails" "Heads"
##  [641] "Heads" "Tails" "Tails" "Heads" "Heads" "Heads" "Heads" "Tails"
##  [649] "Heads" "Heads" "Tails" "Tails" "Tails" "Heads" "Heads" "Tails"
##  [657] "Heads" "Heads" "Heads" "Tails" "Heads" "Tails" "Tails" "Heads"
##  [665] "Tails" "Tails" "Heads" "Heads" "Heads" "Tails" "Tails" "Heads"
##  [673] "Heads" "Heads" "Heads" "Tails" "Heads" "Heads" "Tails" "Heads"
##  [681] "Tails" "Tails" "Tails" "Heads" "Heads" "Heads" "Tails" "Heads"
##  [689] "Tails" "Heads" "Tails" "Tails" "Heads" "Tails" "Heads" "Heads"
##  [697] "Tails" "Tails" "Tails" "Tails" "Tails" "Heads" "Heads" "Tails"
##  [705] "Heads" "Tails" "Heads" "Heads" "Tails" "Tails" "Tails" "Heads"
##  [713] "Tails" "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Heads"
##  [721] "Tails" "Heads" "Heads" "Tails" "Heads" "Heads" "Heads" "Heads"
##  [729] "Tails" "Heads" "Tails" "Heads" "Tails" "Heads" "Heads" "Tails"
##  [737] "Tails" "Heads" "Tails" "Tails" "Heads" "Tails" "Heads" "Tails"
##  [745] "Heads" "Tails" "Heads" "Heads" "Tails" "Tails" "Heads" "Heads"
##  [753] "Tails" "Tails" "Tails" "Tails" "Tails" "Heads" "Heads" "Heads"
##  [761] "Heads" "Tails" "Heads" "Tails" "Heads" "Heads" "Tails" "Heads"
##  [769] "Tails" "Heads" "Tails" "Tails" "Heads" "Tails" "Heads" "Tails"
##  [777] "Tails" "Heads" "Tails" "Heads" "Tails" "Tails" "Tails" "Heads"
##  [785] "Tails" "Tails" "Tails" "Tails" "Tails" "Tails" "Heads" "Heads"
##  [793] "Heads" "Heads" "Tails" "Heads" "Heads" "Heads" "Tails" "Tails"
##  [801] "Tails" "Heads" "Tails" "Heads" "Heads" "Tails" "Tails" "Heads"
##  [809] "Tails" "Heads" "Heads" "Tails" "Heads" "Tails" "Heads" "Heads"
##  [817] "Tails" "Tails" "Heads" "Heads" "Heads" "Tails" "Tails" "Heads"
##  [825] "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails"
##  [833] "Heads" "Tails" "Tails" "Heads" "Tails" "Heads" "Heads" "Heads"
##  [841] "Tails" "Tails" "Heads" "Tails" "Heads" "Tails" "Heads" "Heads"
##  [849] "Tails" "Tails" "Tails" "Tails" "Tails" "Heads" "Heads" "Tails"
##  [857] "Heads" "Tails" "Heads" "Heads" "Heads" "Tails" "Heads" "Tails"
##  [865] "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails"
##  [873] "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails"
##  [881] "Heads" "Tails" "Tails" "Heads" "Tails" "Tails" "Tails" "Tails"
##  [889] "Heads" "Tails" "Heads" "Tails" "Heads" "Tails" "Heads" "Heads"
##  [897] "Heads" "Tails" "Heads" "Tails" "Tails" "Tails" "Tails" "Tails"
##  [905] "Tails" "Heads" "Tails" "Tails" "Tails" "Tails" "Heads" "Tails"
##  [913] "Heads" "Heads" "Tails" "Heads" "Heads" "Tails" "Heads" "Heads"
##  [921] "Heads" "Heads" "Tails" "Tails" "Heads" "Tails" "Tails" "Tails"
##  [929] "Tails" "Tails" "Tails" "Tails" "Tails" "Heads" "Heads" "Heads"
##  [937] "Heads" "Heads" "Heads" "Heads" "Heads" "Heads" "Heads" "Tails"
##  [945] "Heads" "Heads" "Tails" "Heads" "Tails" "Tails" "Heads" "Heads"
##  [953] "Tails" "Heads" "Tails" "Tails" "Tails" "Tails" "Heads" "Heads"
##  [961] "Heads" "Tails" "Tails" "Tails" "Heads" "Tails" "Heads" "Tails"
##  [969] "Heads" "Tails" "Heads" "Tails" "Tails" "Heads" "Heads" "Tails"
##  [977] "Tails" "Tails" "Tails" "Tails" "Heads" "Heads" "Heads" "Tails"
##  [985] "Tails" "Heads" "Heads" "Tails" "Heads" "Tails" "Tails" "Tails"
##  [993] "Heads" "Heads" "Tails" "Heads" "Tails" "Heads" "Heads" "Tails"

Prikaz rezultata eksperimenta

table(sample(coin, size = 1000, replace = TRUE))
## 
## Heads Tails 
##   502   498

Simulirajmo bacanje falicnog novcica

sample(coin, size = 100, replace = TRUE, prob = c(1/3,2/3))
##   [1] "Heads" "Heads" "Heads" "Tails" "Heads" "Tails" "Heads" "Tails"
##   [9] "Tails" "Tails" "Tails" "Tails" "Heads" "Heads" "Tails" "Tails"
##  [17] "Heads" "Heads" "Heads" "Tails" "Heads" "Tails" "Tails" "Tails"
##  [25] "Tails" "Tails" "Tails" "Tails" "Tails" "Tails" "Tails" "Tails"
##  [33] "Tails" "Heads" "Tails" "Tails" "Tails" "Tails" "Tails" "Tails"
##  [41] "Tails" "Tails" "Heads" "Tails" "Heads" "Tails" "Tails" "Tails"
##  [49] "Tails" "Heads" "Heads" "Tails" "Heads" "Tails" "Tails" "Tails"
##  [57] "Heads" "Heads" "Tails" "Heads" "Tails" "Tails" "Tails" "Heads"
##  [65] "Tails" "Tails" "Tails" "Heads" "Tails" "Tails" "Tails" "Heads"
##  [73] "Tails" "Tails" "Tails" "Heads" "Tails" "Tails" "Tails" "Tails"
##  [81] "Tails" "Heads" "Tails" "Heads" "Heads" "Tails" "Heads" "Tails"
##  [89] "Heads" "Tails" "Tails" "Tails" "Tails" "Tails" "Tails" "Tails"
##  [97] "Tails" "Heads" "Tails" "Tails"
table(sample(coin, size = 100, replace = TRUE, prob = c(1/3,2/3)))
## 
## Heads Tails 
##    30    70

Vec na sto simulacija mozemo da vidimo razliku u frekvencijama

Jos jedna funkcija za generisanje slucajnosti je runif.
Ona generise slucajan broj iz intervala (0,1) (po zakonu uniformne raspodjele).
Njeni glavni argumenti runif(size, min = a, max = b)

r<-runif(1000, 0,1)

length(r[r < 0.5])/1000
## [1] 0.52
length(r[r > 2/3])/1000
## [1] 0.331