Próbuję rozbić pętlę for na tibble, a następnie użyć summarize()
funkcja, aby uzyskać końcową wartość.
To jest pętla
prob <- NULL
for(i in(4:16)){
p1 = dbinom(i,16,0.2)
k=13-i
p2=sum(dbinom(k:30,30,0.2))
prob = c(prob,p1*p2)
print(i)
}
Dotarłem tak daleko
df <- tibble( i=4:16) %>%
mutate(p1=dbinom(i,16,0.2),k=as.integer(13-i)) %>%
mutate(p2=sum(dbinom(k:30,30,0.2)))
df
powoduje to następujący błąd
Warning message:
In k:30 : numerical expression has 13 elements: only the first used
Ostrzeżenie mówi, że k ma tylko 13 elementów, ale nie powinno to stanowić problemu, ponieważ reszta moich danych ma 13 elementów. Nie jestem pewien, jak rozwiązać problem.
Odpowiedzi:
2 dla odpowiedzi № 1powinieneś manipulować danymi według wiersza: spróbuj tego
tibble( i=4:16) %>%
mutate(p1=dbinom(i,16,0.2),k=as.integer(13-i)) %>%
rowwise() %>%
mutate(p2=sum(dbinom(k:30,30,0.2)))