开发者

How to define argument types for R functions?

I am writing an R function, and I want to make sure that the argument of my R function is of a certain class (eg, "matrix").

What is the best way to开发者_运维技巧 do this?

Say I have a function "foo" which computes the inverse of a matrix:

foo <- function(x)
{
   # I want to make sure x is of type "matrix"
   solve(x)
}

How can I say - as you might in C - function(matrix x) to denote that "x must be of type matrix, and if it isn't, then return an error"?


stopifnot(is.matrix(x))


You can either check that it's a matrix with is.matrix or else convert it with as.matrix after the parameter is passed:

foo <- function(x)
{
   if(!is.matrix(x)) stop("x must be a matrix")
   # I want to make sure x is of type "matrix"
   solve(x)
}


Just for completeness: besides

is.matrix(foo) 

you can also test for

class(foo) == "matrix" 

which also works for non-standard that do not have is.foo() functions.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜