我正在尝试将for循环分解为tibble,然后使用summarize()
函数来获取最终值。
这是循环
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)
}
我到目前为止
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
这会产生以下错误
Warning message:
In k:30 : numerical expression has 13 elements: only the first used
警告说k只有13个元素,但这应该不是问题,因为我的其余数据有13个元素。我不知道如何解决问题。
答案 0 :(得分:2)
你应该按行操作数据:试试这个
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)))