我正在编写一个包含一些变量的函数,其中一些可能没有定义/声明。如果未定义/声明它们,它们如何自动作为" NULL" /被忽略为默认值。
combine <- function(GroupOne, GroupTwo) {
paste(GroupOne, GroupTwo)}
例如1,仅定义GroupOne
GroupOne <- "a"
结果
combine()
"a"
例如2:定义GroupOne和GroupTwo
GroupOne <- "a"
GroupTwo <- "b"
结果
combine()
"ab"
我试图将它与功能&#34;缺少&#34;,&#34;存在&#34;,&#34; hasArg&#34;但是还没有成功。我想听听你的见解!
非常感谢提前和干杯!
答案 0 :(得分:1)
构建函数时,默认情况下可以将变量设置为NULL:
GroupOne <- "a"
GroupTwo <- "b"
combine <- function(GroupOne=NULL, GroupTwo=NULL){
if(is.null(GroupOne) | is.null(GroupTwo)){
paste0(GroupOne, GroupTwo)
} else {
paste(GroupOne, GroupTwo)
}
}
combine()
character(0)
combine(GroupOne)
"a"
combine(GroupOne,GroupTwo)
"a b"
答案 1 :(得分:0)
如果我理解正确,以下将做你想要的。
combine <- function(GroupOne, GroupTwo) {
if(missing(GroupOne)) GroupOne <- NULL
if(missing(GroupTwo)) GroupTwo <- NULL
paste(GroupOne, GroupTwo)
}
combine()
character(0)
GroupOne <- "a"
combine(GroupOne)
[1] "a "