R语言-缺少参数, 也没有缺省值

“缺少参数, 也没有缺省值”——在R语言自编函数调用的过程中,如果参数没有输入值则会报这个错误。

1、问题

例如:

> my.func
my.func<-function(p){
    print("TEST IS OK!")
    print(p)
}
> my.func()
[1] "TEST IS OK!"
Error in print(p) :

  在为'print'函数选择方法时评估'x'参数出了错: 错误: 缺少参数"p",也没有缺省值

2、分析

这个怎么办呢?能象Java语言中一样加入空值判断吗?例如:

my.func<-function(p){
    print("TEST IS OK!")
    if(is.null(p))
        print("p value is null.")
    else
        print(p)
}

回答是不可以。这确实是与Java等其他面向对象的语言不一样。

那么怎么解决呢?

3、解决

答案就是加入缺省参数,也就是说在R语言里,不允许有不确定的参数存在。

改进后的例子:

my.func<-function(p=1){
    print("TEST IS OK!")
    print(p)
}

运行:

> my.func()
[1] "TEST IS OK!"
[1] 1
>

在设置缺省值后,即使不输入参数,也能正常运行。

你可能感兴趣的:(R,Language,r语言,函数,参数)