Создание гистограммы для 10 монет, перевернутых одновременно 1000 раз с использованием R - PullRequest
0 голосов
/ 11 января 2020

Я новичок в R и просто работаю над проектом класса статистики.

Мне нужно создать гистограмму для 10 одновременных бросков монет, 1000 раз. Вот мой код для генерации 1000 сальто и подсчета количества головок на основе назначения.

# one coin toss
coin <- c('heads','tails')


tossResult = NULL
# variables to store the counts of number of heads in each toss
heads7 = 0
headsLessOrEquatTo7 = 0
headsLessThat7 = 0
heads7OrMore = 0
headsMoreThan7 = 0
heads3 = 0
heads4 = 0

for (i in 1:1000) {
    # resetting number of heads to 0 before each iteration
    numOfHeads = 0
    tossResult = sample (coin, size = 10, replace = TRUE)
    numOfHeads = sum (tossResult == 'heads')
    hist(numOfHeads)
    if (numOfHeads == 7) {
        heads7 = heads7 + 1
    } 
    if (numOfHeads <= 7) {
       headsLessOrEquatTo7 = headsLessOrEquatTo7 + 1
    } 
    if (numOfHeads < 7) {
        headsLessThat7 = headsLessThat7 + 1
    } 
    if (numOfHeads >= 7) {
        heads7OrMore = heads7OrMore + 1
    } 
    if (numOfHeads > 7) {
        headsMoreThan7 = headsMoreThan7 + 1
    }
}
print (paste0("Exactly 7 Heads:: ", heads7))
print (paste0("7 Heads or fewer:: ", headsLessOrEquatTo7))
print (paste0("Fewer than 7 Heads:: ", headsLessThat7))
print (paste0("7 Heads or more:: ", heads7OrMore))
print (paste0("More than 7 Heads:: ", headsMoreThan7))

Мне нужно создать гистограмму для количества головок в каждой итерации. Любая помощь приветствуется.

1 Ответ

2 голосов
/ 11 января 2020

Вы можете создать функцию, которая подсчитывает количество головок за одну итерацию.

count_heads <- function() {
    tossResult = sample(c('heads','tails'), 10, replace = TRUE)
    sum(tossResult == 'heads')
}

Используйте replicate, чтобы повторить его 1000 раз, и постройте гистограмму

hist(replicate(1000, count_heads()), xlab = "number of heads", 
      main = "Histogram of number of heads")

enter image description here

...