我使用Rbdiag
中包中的函数Matrix
生成对角矩阵,然后将结果矩阵(称为mat
)传递给自写的函数,但由于以下错误,R 无法执行:
Error: invalid mode (S4) to pass to Fortran (arg 1)
我查了一下isS4(mat)
,是的TRUE
。因此,我想有一种方法可以以某种方式转换 S4 对象以便传递给函数。任何建议将不胜感激!
更新:我使用以下代码构建块对角矩阵:
grp.ids <- as.factor(c(rep(1,8), rep(2,4), rep(3,2)))
x <- model.matrix(~grp.ids)
X <- do.call(bdiag, replicate(238, x, simplify=FALSE))
有没有其他方法可以在不使用该bdiag
函数的情况下获得 S3 矩阵?谢谢!