2017-08-01 24 views
0

我曾嘗試這樣的代碼:誤差if語句,缺失值,其中TRUE/FALSE需要

My_fun <- function(first_argument, second_argument, w=c(0.5,0.4){ 


     for(i in 1:2){ 
     if(w[i] < 0){ 
     stop("w must be positive") 
     } 
    } 
    } 

而且我得到了這個錯誤:

Error in if (w[i] < 0) { : missing value where TRUE/FALSE needed 

哪裏是我的問題嗎?請幫忙嗎?我認爲我的代碼應該工作得很好!

+1

可能使用更安全'的(我在W)'在這些情況下,因爲無論如何,你正在期待一個向量。但是,在第一行的'{'之前添加一個''''後,你的函數對我使用'My_fun(1,2)'和'My_fun(1,2,w = c(-1))' 。 – lmo

+0

@Imo非常感謝。現在是工作。對不起,我的代碼很長很複雜(我剛介紹了一個簡單的例子)。 –

回答

0

好,其缺少 「)」 在1ºline,後W = C(0.5,0.4)

您如何調用該函數? 如果你打電話像「My_fun(1,2)」它的工作。

但像LMO說,可能使用更安全的(我在W)在這些情況下,因爲你是無論如何期待一個矢量

相關問題