这是我目前的代码:
my.function <- function( my.arg="" ){
if(my.arg == "")
my.arg <- rnorm(10)
return( mean(my.arg) )
}
它让我回答:
> my.function( rbinom(10, 100, 0.2) )
[1] 18.5
Warning message:
In if (a == "") a <- rnorm(10) :
the condition has length > 1 and only the first element will be used
我尝试使用my.arg=c()
或my.arg=0
,但我总是收到警告或错误。 R手册在这个问题上没有说太多。
有什么想法吗?提前谢谢!
答案 0 :(得分:18)
尝试
my.function <- function( my.arg=NULL ){
if(is.null(my.arg)) ...
答案 1 :(得分:11)
还有missing
:
my.function <- function(my.arg) {
if(missing(my.arg)) ...
答案 2 :(得分:3)
卡斯滕的方法是正确的。警告的原因是你正在测试my.arg对“”这是一个长度为1的字符向量,因此当my.arg是长度为&gt;的向量时发出警告。 1。 如果你真的想测试my.arg是否是“”,你需要做类似
的事情if (length(my.arg) == 1 && my.arg == "")