2017-05-01 7 views
1

これは私が以下のコードで取得している警告メッセージです。何が問題になるのか理解するのに役立つでしょうか?forループ警告メッセージ:数値式には3つの要素があります:最初のコードのみが使用されます

"警告メッセージ:1で :X:数式は、3つの要素があります:最初は使用されている" あなたはX1のsumを望んでいた場合

x1 <- c(4,17,25) 

sum_function <- function(x){ 

    sum_fun <- 0 

    for(i in 1:length(x)) { 

    sum_fun <- sum_fun + i 
    } 

    return(sum_fun) 
} 

sum_function(x1) 
+2

警告はあなたの関数は、(x iは1)のための'のように見える示唆しています。新しいセッションでコードを実行してみてください。 – Frank

+0

forループで '1 + 2 + 3 + ... + length(x)'を計算したいのですか? – jogo

+1

x1の累積合計が必要な場合は、 'cumsum(x1)'と書かれている必要があります。 ':'関数の第2引数はマルチエレメントベクトルであってはいけませんが、上のコードでは実際には間違いはありません。 –

答えて

1

、あなたはちょうど書かれている必要があります。

sum(x1) # or perhaps cumsum(x1) if cumulative sums were desired. 

:関数の2番目の引数は、複数要素のベクトルであってはいけませんが、上のコードでは実際には間違いはありません。あなたはと、同じ警告メッセージを取得することができます:警告がfor関数からではなく、: -functionから来ていない

x1 <- c(4,17,25) 

junk_function <- function(x){ 
    z <- 0 
    for(i in 1:x) { 
    z <- z + i 
    } 
} 
junk_function(x1) 

。何の割り当てや目標に応じて、適切なバージョンだった: ``ない1:長さ(X) `:

x1 <- c(4,17,25) 

s_function <- function(x){ 
    z <- 0 
    for(i in x) { 
    z <- z + i 
       } 
return(z)} 

s_function(x1) 
関連する問題