我正在写一个R函数,我想确保我的R函数的参数是某个类(例如,“矩阵”)。
这样做的最佳方式是什么?
假设我有一个函数“foo”来计算矩阵的逆矩阵:
foo <- function(x)
{
# I want to make sure x is of type "matrix"
solve(x)
}
我怎么说 - 正如你可能在C - function(matrix x)
中表示“x
必须是matrix
类型,如果不是,则返回错误” ?
答案 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()
功能的非标准。