我正在为R中的某种类型的混合模型编写自己的软件包,并且想要一种简单有效的方法来形成设计矩阵 . 固定部分("X")不是问题,如果我希望它稀疏,我使用Matrix包中的 model.matrixsparse.model.matrix .

我正在寻找一个等效函数,最好是在经过良好测试的软件包中,来创建随机效果设计矩阵(“Z”) .

例如,如果我使用lme4包装适合lmer / glmer模型,我可以通过调用 getME(fitted_object, "Zt") 获得所需的矩阵,但我不想仅仅为了得到"Zt"或Z矩阵而适合模型 . 理想情况下,我想调用(例如) model.matrix.random(formula) 并直接获取任何有效的公式 .

在回应评论中的讨论时,也欢迎关于如何编程这样一个功能的想法,但我希望已经有一个经过良好测试的实现 . 我试着查看lme4的源代码,看看他们是如何做到这一点但却无法找到相关的代码 .