gpt4 book ai didi

R Stargazer - 手动指定 R^2 并写入 .tex

转载 作者:行者123 更新时间:2023-12-01 01:51:18 24 4
gpt4 key购买 nike

我正在使用 Stargazer 报告一些模型的结果,其中我使用了强大的标准误差。计算这些然后将模型提供给 Stargazer 的过程会去除诸如 R^2 之类的数据,因此我需要手动添加它。然而,这样做会给我带来问题。以下是基本stargazer()打电话说我想跑。在它之后和一些讨论是生成进入 stargazer() 的数据所需的代码。称呼:

stargazer(fit1_robust, fit2_robust,
keep.stat = c("n", "adj.rsq"), # doesn't actually result in keeping the stats, but including it just to demonstrate such.
add.lines = list(c("Adjusted $R^2$", fit1_r2, fit2_r2)),
out = "~/Test.tex"
)

当我调用它时,出现以下错误:
Error in if (nchar(text.matrix[r, c]) > max.length[real.c]) { : 
missing value where TRUE/FALSE needed

这有一些有趣的方面:
  • 如果我省略 ^,则不会发生该错误而只是使用 "Adjusted $R2$"
  • 如果我不使用 out,则不会发生该错误指定要导出到的 .tex 文件的参数。

  • 解决这些项目符号中的任何一个“解决”了错误,但代价是我的代码没有真正按照我的意愿去做。如何以我在这里所做的方式手动添加调整后的 R^2(更一般地说,添加涉及 ^ 的注释)?

    (注意:我也尝试转义 ^ 字符,将其替换为 /^ 。这给出了一个错误。如果我使用双重转义: //^ 可以防止错误,但是在生成的.tex 文件,这不是我想要的。)

    下面是代码的其余部分,用于获得上述 stargazer() 所需的所有对象。称呼:
    library(stargazer)
    library(lmtest)
    library(sandwich)

    #################
    # Simulate Data #
    #################

    N = 100

    A = rnorm(N)
    B = rnorm(N)
    Y = 2*A + B + rnorm(N)
    Data = data.frame(Y, A, B)

    #####################################
    # Fit Models and Find Robust Errors #
    #####################################

    fit1 = lm(Y~A)
    fit2 = lm(Y~A+B)

    fit1_robust = coeftest(fit1, vcov = sandwich)
    fit2_robust = coeftest(fit2, vcov = sandwich)

    fit1_r2 = round(summary(fit1)$adj.r.squared, 4)
    fit2_r2 = round(summary(fit2)$adj.r.squared, 4)

    最佳答案

    一种解决方法是将 stargazer 的输出保存在一个变量中,然后将其写入文件:

    star = stargazer(fit1_robust, fit2_robust,
    add.lines = list(c("Adjusted $R^2$", fit1_r2, fit2_r2))
    )
    cat(star, sep = '\n', file = 'Test.tex')

    enter image description here

    关于R Stargazer - 手动指定 R^2 并写入 .tex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44318860/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com