我不熟悉在R函数中使用match.arg
作为默认值规范。我对以下行为有疑问。
trial_func <- function(a=c("1","9","20"),b=c("12","3"),d=c("55","01")){
a <- match.arg(a)
b <- match.arg(b)
d <- match.arg(d)
list(a,b,d)
}
trial_func()
# [[1]]
# [1] "1"
#
# [[2]]
# [1] "12"
#
# [[3]]
# [1] "55"
当我尝试对每个单独的参数使用match.arg
时,它按预期工作。但是当我尝试使用lapply来减少编写的代码时,会导致以下问题。
trial_func_apply <- function(a=c("1","9","20"),b=c("12","3"),d=c("55","01")){
lapply(list(a,b,d), match.arg)
}
trial_func_apply()
FUN中的错误(X [[i]],...):'arg'的长度必须为1
我在这里错过了什么吗?
答案 0 :(得分:0)
在调查了一下之后,你需要传递你的字符向量为NULL的论据,即
PostWebTest