Simulering av tärningskast i r.
Jag skall simulera de relativa frekvenserna av fyror samt treor från ett tärningskast. Jag skall utföra försöket 7 gånger och varje realisering innehåller 100000 kast. Nu är min fråga hur jag skall gå tillväga för att upprepa följande kod sju gånger samt få fram olika värden på relf_treor samt relf_fyror för varje försök. Antar att jag skall använda mig av någon funktion?
Jag har inte programmerat i R men läste på TutorialsPoint.
for(i in 1:7) {
# din kod som repeteras 7 gånger
}
Lindehaven skrev:Jag har inte programmerat i R men läste på TutorialsPoint.
for(i in 1:7) {
# din kod som repeteras 7 gånger
}
Testade att köra följande med det funkade inte..
for(i in 1:7) {
x1 <- floor(6*runif(100000,0,1)+1) # 1.3 Analys av försöket kasta en tärning skall köra den här koden sju gånger
y1 <- x1==3
z2 <- x1==4
relf_treor <- cumsum(y1)/seq(1,100000)
relf_fyror <- cumsum(z2)/seq(1,100000)
mean(relf_fyror)
mean(relf_treor)
plot(relf_treor)
lines(relf_fyror, col="red")
diff_tre_fyr <- relf_fyror - relf_treor
plot(diff_tre_fyr)
}
Jag svarade endast på din fråga om hur man upprepar kod i R. Kan tyvärr inte hjälpa dig med felsökningen, men noterar att du beräknar och plottar i varje iteration vilket kanske inte ger förväntat resultat?
Löste du detta problem? jag sitter nämligen med samma problem.
Har spenderat en timme på att sätta mig in i R och skrivit ett program för att lösa detta problem. Som jag tidigare misstänkte så bör man inte plotta resultatet i varje iteration i loopen. Funktionerna list(), mean() och c() är hjälpfulla.
Publicerar just nu enbart kommentarer och viss kod som du kan arbeta vidare med.
# Initiera lista för treor med list()
# Initiera lista för fyror med list()
# Initiera tom lista för relativ frekvens för treor med list()
# Initiera tom lista för relativ frekvens för fyror med list()
# Gör flera försök med for()
for(i in 1:7)
{
# Kasta tärningen ett flertal gånger med runif()
x <- floor(6*runif(100000, 0, 1) + 1)
# Beräkna antal utfall för treor med ==
# Beräkna medelvärdet av treors relativa frekvens med mean()
# Lägg till medelvärdet i listan för relativ frekvens för treor med c()
# Beräkna antal utfall för fyror med ==
# Beräkna medelvärdet av fyrors relativa frekvens med mean()
# Lägg till medelvärdet i listan för relativ frekvens för fyror med c()
}
# Placera två diagram bredvid varandra
par(mfrow = c(1, 2))
# Plotta utfallens relativa frekvens för de olika försöken
plot(lista för treor, listan för relativ frekvens för treor, xlab='Treor', ylab='Relativ frekvens')
plot(lista för fyror, listan för relativ frekvens för fyror, xlab='Fyror', ylab='Relativ frekvens')
Lindehaven skrev:Har spenderat en timme på att sätta mig in i R och skrivit ett program för att lösa detta problem. Som jag tidigare misstänkte så bör man inte plotta resultatet i varje iteration i loopen. Funktionerna list(), mean() och c() är hjälpfulla.
Publicerar just nu enbart kommentarer och viss kod som du kan arbeta vidare med.
# Initiera lista för treor med list()
# Initiera lista för fyror med list()
# Initiera tom lista för relativ frekvens för treor med list()
# Initiera tom lista för relativ frekvens för fyror med list()
# Gör flera försök med for()
for(i in 1:7)
{
# Kasta tärningen ett flertal gånger med runif()
x <- floor(6*runif(100000, 0, 1) + 1)
# Beräkna antal utfall för treor med ==
# Beräkna medelvärdet av treors relativa frekvens med mean()
# Lägg till medelvärdet i listan för relativ frekvens för treor med c()
# Beräkna antal utfall för fyror med ==
# Beräkna medelvärdet av fyrors relativa frekvens med mean()
# Lägg till medelvärdet i listan för relativ frekvens för fyror med c()
}
# Placera två diagram bredvid varandra
par(mfrow = c(1, 2))
# Plotta utfallens relativa frekvens för de olika försöken
plot(lista för treor, listan för relativ frekvens för treor, xlab='Treor', ylab='Relativ frekvens')
plot(lista för fyror, listan för relativ frekvens för fyror, xlab='Fyror', ylab='Relativ frekvens')
Tack så mycket för hjälpen och sorry för sent svar men lyckades fixa det själv på ett annat sätt. Mvh