Eu estou tentando quebrar um for-loop em uma tibble, em seguida, usar o summarize()
função para obter o valor final.
Este é o loop
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)
}
Eu cheguei até aqui
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
isso produz o seguinte erro
Warning message:
In k:30 : numerical expression has 13 elements: only the first used
O aviso diz que o k tem apenas 13 elementos, mas isso não deve ser um problema, porque o resto dos meus dados tem 13 elementos. Não sei como consertar o problema.
Respostas:
2 para resposta № 1você deve manipular dados por linha: tente isso
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)))