我在knitr
组合回归表。我尝试使用texreg
,但它没有用。我还可以做些什么?谢谢。例如:
\documentclass{article}
\begin{document}
<<result='asis'>>=
library(texreg)
reg1 <- lm(Petal.Length ~ Petal.Width, data=iris)
reg2 <- lm(Sepal.Length ~ Sepal.Width, data=iris)
texreg(list(reg1,reg2))
@
\end{document}
答案 0 :(得分:4)
您对lm
的第二次电话会覆盖之前的reg
?texreg
说第一个参数可以是“list
统计模型”,所以请尝试列出一个列表。
texreg(list(lm(Petal.Length ~ Petal.Width, data=iris),
lm(Sepal.Length ~ Sepal.Width, data=iris)))
答案 1 :(得分:2)
我不确定这是否是texreg
包的错误或功能;你应该和texreg
:
> library(texreg)
Version: 1.15
Date: 2012-11-13
> reg1 <- lm(Petal.Length ~ Petal.Width, data=iris)
> reg2 <- lm(Sepal.Length ~ Sepal.Width, data=iris)
> texreg(list(reg1,reg2))
\usepackage{booktabs}
\usepackage{dcolumn}
\begin{table}
\begin{center}
\begin{tabular}{l D{.}{.}{3.5} @{}D{.}{.}{3.5} @{}}
\toprule
& \multicolumn{1}{c}{Model 1} & \multicolumn{1}{c}{Model 2} \\
\midrule
(Intercept) & 1.08^{***} & 6.53^{***} \\
& (0.07) & (0.48) \\
Petal.Width & 2.23^{***} & \\
& (0.05) & \\
Sepal.Width & & -0.22 \\
& & (0.16) \\
\midrule
R$^2$ & 0.93 & 0.01 \\
Adj. R$^2$ & 0.93 & 0.01 \\
Num. obs. & 150 & 150 \\
\bottomrule
\vspace{-2mm}\\
\multicolumn{3}{l}{\textsuperscript{***}$p<0.01$,
\textsuperscript{**}$p<0.05$,
\textsuperscript{*}$p<0.1$}
\end{tabular}
\end{center}
\caption{Statistical models}
\label{table:coefficients}
\end{table}
[1] "\n\\usepackage{booktabs}\n\\usepackage{dcolumn}\n\n\\begin{table}\n\\begin{center}\n\\begin{tabular}{l D{.}{.}{3.5} @{}D{.}{.}{3.5} @{}}\n\\toprule\n & \\multicolumn{1}{c}{Model 1} & \\multicolumn{1}{c}{Model 2} \\\\\n\\midrule\n(Intercept) & 1.08^{***} & 6.53^{***} \\\\\n & (0.07) & (0.48) \\\\\nPetal.Width & 2.23^{***} & \\\\\n & (0.05) & \\\\\nSepal.Width & & -0.22 \\\\\n & & (0.16) \\\\\n\\midrule\nR$^2$ & 0.93 & 0.01 \\\\\nAdj. R$^2$ & 0.93 & 0.01 \\\\\nNum. obs. & 150 & 150 \\\\\n\\bottomrule\n\\vspace{-2mm}\\\\\n\\multicolumn{3}{l}{\\textsuperscript{***}$p<0.01$, \n \\textsuperscript{**}$p<0.05$, \n \\textsuperscript{*}$p<0.1$}\n\\end{tabular}\n\\end{center}\n\\caption{Statistical models}\n\\label{table:coefficients}\n\\end{table}\n"
问题是texreg()
在控制台中打印TeX表并同时返回可见字符向量(参见上面的最后一行),而我猜后者是不必要的,虽然您可以通过将invisible()
放在texreg()
附近或将其分配给变量以避免打印来解决问题。这是一个完整的例子:
\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}
\begin{document}
<<results='asis'>>=
library(texreg)
reg1 <- lm(Petal.Length ~ Petal.Width, data=iris)
reg2 <- lm(Sepal.Length ~ Sepal.Width, data=iris)
invisible(texreg(list(reg1,reg2), use.packages=FALSE))
@
\end{document}
另请注意,您需要use.packages=FALSE
以避免LaTeX文档的中间<{1}}和\usepackage{dcolumn}
,这是没有意义的(它们应该在改为序言。)