Я стараюсь работать с аргументом многоточия (...
) в R и иметь некоторые проблемы.Как разрешить R распознавать вектор аргументов в многоточии?
Я пытаюсь передать некоторые аргументы по умолчанию в начале функции, не загромождая область аргументов функции, используя ...
и переопределяя, если они там предоставлены. Но как-то многоточие аргумент, кажется, не забрать мой полного вектора
test <- function(dat,
# I don't want to have to put default col,
# ylim, ylab, lty arguments etc. here
...) {
# but here, to be overruled if hasArg finds it
color <- "red"
if(hasArg(col)) { # tried it with both "col" and col
message(paste("I have col:", col))
color <- col
}
plot(dat, col = color)
}
Функция вызова:
test(data.frame(x = 1:10, y = 11:20), col = c("purple", "green", "blue"))
Выдает ошибку:
Error in paste("I have col:", col) (from #8) :
cannot coerce type 'closure' to vector of type 'character'
Так что что-то происходит не так здесь. Если я передаю аргументы многоточия функции графика сразу, она работает без ошибок.
Похоже, вам нужно читать [некоторые расширенные R] (http://adv-r.had.co.nz/Computing-on-the-language.html). Найдите «точки» на странице, которую я связал. – Gregor