0
我是使用match.arg
作爲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 [我],...): 'ARG' 必需是長度爲1
我在這裏失去了一些東西?
是啊,似乎工作。爲什麼會發生這種情況? – prateek1592
看來你的'a','b','c'代表函數的'choices'參數而不是'arg'。除此之外,我不熟悉這個功能,所以不能肯定地說 – Sotos