如何将“ flexmix”模型(在R中)导出到Tex中?

时间:2019-06-22 19:09:08

标签: r texreg

我已经使用R包“ flexmix”创建了一些回归模型。我现在想将结果导出到Tex。

与使用lm()创建的常规模型不同,flexmix模型不会保存为命名数字,而是保存为FLXRoptim对象。

当我现在使用'texreg'包中的普通语法以便从模型结果中创建Tex代码时,我收到错误消息:

”无法找到签名““ FLXRoptim””的函数“提取”的继承方法

我必须直接访问模型,这些模型存储为'Coefmat',但我没有设法使其可用于texreg()。

library(flexmix)
library(texreg)
data("patent")

## 1. Flexmix model ##
flex.model <- flexmix(formula = Patents ~ lgRD, data = patent, k = 3, 
  model = FLXMRglm(family = "poisson"), concomitant = FLXPmultinom(~RDS))
re.flex.model <- refit(flex.model)

## 2. Approach of results extraction ##
comp1.flex <- re.flex.model@components[[1]][["Comp.1"]]

## 3. Not working: Tex Export ## 
texreg(comp1.flex)

你们有一个想法如何使这些模型结果可用于Tex导出吗?

1 个答案:

答案 0 :(得分:0)

我现在找到了一种解决方法:'Texreg'允许我们使用手动指定的列创建Texreg模型。

createTexreg(coef.names, coef, se, pvalues)

使用上面的示例:

## Take estimates, SEs, and p-values for Comp1 ##
est1 <- re.flex.model@components[[1]][["Comp.1"]][,1]
se1 <- re.flex.model@components[[1]][["Comp.1"]][,2]
pval1 <- re.flex.model@components[[1]][["Comp.1"]][,4]

## Take estimates, SEs, and p-values for Comp2 ##
est2 <- re.flex.model@components[[1]][["Comp.2"]][,1]
se2 <- re.flex.model@components[[1]][["Comp.2"]][,2]
pval2 <- re.flex.model@components[[1]][["Comp.2"]][,4]


## Create Texreg objects and export into Tex ##
mymodel1 <- createTexreg(row.names(comp1.flex), est1, se1, pval1)
mymodel2 <- createTexreg(row.names(comp1.flex), est2, se2, pval2)
models.flex = list(mymodel1, mymodel2)
texreg(models.flex)

这可能是将此类特定模型转换为常规Tex输出的最实用方法。