2017-08-30 60 views
0

forループをtibbleに分割し、summarize()関数を使用して最終値を取得しようとしています。数値式にはx要素があります。最初のもののみを使用します。

これは私がこの警告は、kは唯一の13個の要素を持っていると言いますが、この次のエラー

Warning message: 
In k:30 : numerical expression has 13 elements: only the first used 

を生成し、このはるか

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 

を得たループ

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) 
} 

です残りのデータには13の要素があるため、問題にはなりません。私はどのように問題を解決するか分からない。

+0

を試してみてください - 例えば: 'C(1,2,3):3'与えます同じ*警告*。 – thelatemail

答えて

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))) 
+0

私は 'rowwise()'に気づいていませんでした。 – Alex

+0

ありがとう、アドバイスありがとう – myincas