GOAL: simulate data for testing.
Simulation of throwing a dice 4 times:
sample(1:6, 4, replace = TRUE)
Replaced = TRUE insert the data after each launch.
You can set up the probability of each event.
Es. throw a coin 100 times with 30% tails probability (0) and 70% heads (1)
sample(c(0,1), 100, replace = TRUE, prob = c(0.3, 0.7))
Each random variable has a function for simulation (named r[RVname]).
Es. binomial (like previous example):
rbinom(1, size = 100, prob = 0.7) #heads number, probability 70% rbinom(100, size = 1, prob = 0.7) #results on 100 flips
rnorm(10) #10 random numbers from standard normal (avg 0, sd 1) rnorm(10,100,25) #10 random number from normal with avg 100 and sd 25
replicate() to replicate an operation n times.
Es. simulate 100 groups of random numbers, each of them with 5 values generated by a Poisson with average = 10:
replicate(100, rpois(5, 10)) #colMeans() to see the average of each column: colMeans(replicate(100, rpois(5, 10))) #histogram: we will see that are distributed like a normal (central limit theorem) hist(colMeans(replicate(100, rpois(5, 10))))
With set.seed() you can replicate every time the sample you used:
set.seed(125) #125 is a random integer sample(1:6, 4, replace = TRUE)
If you use this function with set.seed(125) the results will be always the same.