将bife对象的结果输出到Rmarkdown中的Latex中?

问题描述 投票:1回答:1

我正在使用R中的bife包来估计一个固定效应的probit模型。我试图将输出结果提取到我可以使用stargazer或texreg的东西中,这样我就可以使用Rmarkdown创建一个LaTeX对象将其输出到论文中。我知道我可以手动提取系数和标准误差等,但我想知道是否有更有效的方法来强制将这个对象转化为可以使用任何一个软件包的东西。

这里有一个可重复的例子。

install.packages("bife")
library(bife)
data("iris")
iris$big <- ifelse(iris$Sepal.Length > median(iris$Sepal.Length),1,0)
output <- bife(big ~ Sepal.Width + Petal.Length | Species, data=iris, "logit")
r-markdown stargazer texreg
1个回答
0
投票

我想我找到了一个替代的解决方案,即使可能太晚了。

基本上,首先,我在 "texreg "包的仓库里找到了这个函数。

extract.bife <- function(model,
                         include.loglik = TRUE,
                         include.deviance = TRUE,
                         include.nobs = TRUE,
                         ...) {
  s <- summary(model)
  coefficient.names <- rownames(s$cm)
  co <- s$cm[, 1]
  se <- s$cm[, 2]
  pval <- s$cm[, 4]

  gof <- numeric()
  gof.names <- character()
  gof.decimal <- logical()
  if (include.loglik == TRUE) {
    lik <- logLik(model)
    gof <- c(gof, lik)
    gof.names <- c(gof.names, "Log Likelihood")
    gof.decimal <- c(gof.decimal, TRUE)
  }
  if (include.deviance == TRUE) {
    gof <- c(gof, deviance(model))
    gof.names <- c(gof.names, "Deviance")
    gof.decimal <- c(gof.decimal, TRUE)
  }
  if (include.nobs == TRUE) {
    n <- s$nobs["nobs"]
    gof <- c(gof, n)
    gof.names <- c(gof.names, "Num. obs.")
    gof.decimal <- c(gof.decimal, FALSE)
  }

  tr <- createTexreg(
    coef.names = coefficient.names,
    coef = co,
    se = se,
    pvalues = pval,
    gof.names = gof.names,
    gof = gof,
    gof.decimal = gof.decimal
  )
  return(tr)
}

所以在你的例子中,只要把它应用在你的模型上,然后使用texreg这个函数,你就会得到一个Latex一样的输出结果

tr <- extract.bife(output)
texreg(tr)

希望能帮到你!最好

© www.soinside.com 2019 - 2024. All rights reserved.