使用xtable函数更改从lm回归获得的表格的行名称。

3

我使用了以下代码,得到了一个包含多个变量回归的汇总表:

    stock = dyn$lm(y1 ~ x1 +lag(x2, -1) + x2 + x3 +x4)
    print(xtable(stock))

这给了我以下输出:

    % latex table generated in R 3.0.1 by xtable 1.7-1 package
    % Mon Aug 12 21:01:51 2013
    \begin{table}[ht]
    \centering
    \begin{tabular}{rrrrr}
       \hline
     & Estimate & Std. Error & t value & Pr($>$$|$t$|$) \\ 
      \hline
     (Intercept) & 0.0031 & 0.0036 & 0.85 & 0.3951 \\ 
      x1 & 0.4947 & 0.0371 & 13.33 & 0.0000 \\ 
      lag(x2, -1) & 0.3745 & 0.0347 & 10.79 & 0.0000 \\ 
      x2 & -0.1248 & 0.0368 & -3.39 & 0.0007 \\ 
      x3 & 0.7368 & 0.0424 & 17.36 & 0.0000 \\ 
      x4 & -0.0033 & 0.0039 & -0.84 & 0.3983 \\ 
         \hline
       \end{tabular}
       \end{table}

我只能手动更改行名称(如x1,lag(x2,-1)等),以便与我的研究中的回归相匹配。

然而,我需要使用许多不同数据组来复制回归,这使得逐个更改行名称太耗费时间。

是否有更自动化/强大的解决方案可以使用代码自定义行名称?

1个回答

2
我认为你想做的是将摘要转换为矩阵,然后使用这里的指南:http://www.inside-r.org/packages/cran/xtable/docs/xtable 来以编程方式向矩阵添加行和列名称。
我现在正在自己尝试弄清楚这个问题,但以下代码应该可以实现:
stock = dyn$lm(y1 ~ x1 + lag(x2, -1) + x2 + x3 +x4)
stock_matrix <- matrix(summary(stock)$coef, ncol = 4L)

rownames(stock_matrix) <- c("Intercept", "$x_{1,t}$", "$x_{2,t-1}$", "$x_2$", "$x_3$", "$x_4$")

print(xtable(stock_matrix), sanitize.text.function = identity)

默认情况下,print.xtable 会转义所有 LaTeX 认可的字符,例如 $% ,以确保您的输出可以编译。我们通过提供自定义文本清理器来覆盖此行为,使这些字符不被转义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接