On 12-10-03 1:59 AM, ishi soichi wrote:
platform       x86_64-apple-darwin9.8.0
arch           x86_64
os             darwin9.8.0
system         x86_64, darwin9.8.0
version.string R version 2.13.1 (2011-07-08)

I am trying to write a function that takes a few objects as input.

test <- function(directory, num = 1:100) {
}


the argument, "num", has the default value. But when the function is
called, it can take an array as well,

test("directory", c(1, 2, 3))

I don't understand the question. You've passed the vector 1:3 as the num argument (by position). Do you want to prevent someone from passing an array?


I can parse the both arguments by converting them into string, but I am
wondering if there is a better (more efficient) way to achieve this.

I don't understand what you want to achieve.


Perhaps, using built-in R functions can help, I suppose?

Does anyone have any idea for the function taking more than one kind of
argument?

In most functions, R allows any type of argument in any position. If your function only works for one type, usually an error will follow, but you can add your own tests for better error messages. For example,

stopifnot(is.numeric(num))

will trigger an error if num is a non-numeric object. See also stop() for an unconditional error (presumably controlled by an if()).

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to