2017-08-01 77 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)在这些情况下,因为你是无论如何期待一个矢量