Я новичок в использовании 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 [[я]], ...): 'аргумент' должен быть длиной 1
Я пропускаю что-то здесь?
Да, кажется, работает. Почему это происходит? – prateek1592
Кажется, что ваши 'a',' b', 'c' представляют аргумент' choice' функции, а не 'arg'. Кроме этого, я не знаком с этой функцией, поэтому не могу сказать точно – Sotos