/ / wyrażenie liczbowe ma x elementów: tylko pierwszy użyty - r, dplyr

wyrażenie liczbowe ma x elementów: tylko pierwszy użyty - r, dplyr

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 № 1

powinieneś 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)))