如何为R函数定义参数类型?

时间:2009-11-16 23:19:23

标签: r

我正在写一个R函数,我想确保我的R函数的参数是某个类(例如,“矩阵”)。

这样做的最佳方式是什么?

假设我有一个函数“foo”来计算矩阵的逆矩阵:

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

我怎么说 - 正如你可能在C - function(matrix x)中表示“x必须是matrix类型,如果不是,则返回错误” ?

3 个答案:

答案 0 :(得分:14)

你可以检查它是is.matrix的矩阵,还是在传递参数后用as.matrix转换它:

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)
}

答案 1 :(得分:12)

stopifnot(is.matrix(x))

答案 2 :(得分:3)

为了完整性:除了

is.matrix(foo) 

你也可以测试

class(foo) == "matrix" 

也适用于没有is.foo()功能的非标准。