我正在开发一个低层C代码的R包。假设我的C代码中有以下函数。

SEXP myFun(SEXP obj)

我需要知道R对象obj是正则的matrix还是big.matrix(使用R packagebigmemory),以便可以调用不同的函数进行计算。
这可能吗?我怎么知道obj的类类型?

最佳答案

您可以使用inherits函数:

#include <R.h>
#include <Rinternals.h>

SEXP myFun(SEXP obj) {
    if (inherits(obj, "big.memory")) {
        // do stuff
    }
}

关于c - R包开发:如何检查SEXP的类型是否为“big.matrix”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32811243/

10-10 02:20