使用knitR显示R输出的子集

时间:2013-11-14 21:23:12

标签: r formatting latex knitr

有没有办法用knitR只显示部分R输出?我想在beamer演示文稿中仅显示lm模型的部分摘要输出,以便它不会从幻灯片中运行。 (作为旁注,为什么我的代码没有包装?)下面提供了一个最小的例子。

\documentclass{beamer}
\begin{document}
\title{My talk}
\author{Me}
\maketitle
\begin{frame}[fragile, t]{Slide 1}
<<setup, include=FALSE, cache=FALSE, tidy=TRUE>>=
options(width=60, digits=5, show.signif.stars=FALSE)
@
<<mod1, tidy=TRUE>>==
data(cars)  # load data
g <- lm(dist ~ speed + I(speed^2) + I(speed^3), data = cars)
summary(g)
@
\end{frame}
\end{document}

非常具体,说我只想返回以下输出:

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept) -19.50505   28.40530  -0.687    0.496
speed         6.80111    6.80113   1.000    0.323
I(speed^2)   -0.34966    0.49988  -0.699    0.488
I(speed^3)    0.01025    0.01130   0.907    0.369

Residual standard error: 15.2 on 46 degrees of freedom
Multiple R-squared:  0.6732,    Adjusted R-squared:  0.6519 
F-statistic: 31.58 on 3 and 46 DF,  p-value: 3.074e-11

2 个答案:

答案 0 :(得分:3)

可能有更好的方法可以做到这一点,但以下内容适合您。它使用capture.output选择要显示的打印输出的哪些部分:

\documentclass{beamer}
\begin{document}
\title{My talk}
\author{Me}
\maketitle
\begin{frame}[fragile, t]{Slide 1}
<<setup, include=FALSE, cache=FALSE, tidy=TRUE>>=
options(width=60, digits=5, show.signif.stars=FALSE)
@
<<mod1, tidy=TRUE>>==
data(cars)  # load data
g <- lm(dist ~ speed + I(speed^2) + I(speed^3), data = cars)
tmp <- capture.output(summary(g))
cat(tmp[9:length(tmp)], sep='\n')
@
\end{frame}
\end{document}

答案 1 :(得分:0)

此处调用的summary.lm()方法返回与print.summary.lm格式良好格式化的相关输出列表。如果您想要列表中的各个组件,请尝试使用双括号:

输入:

summary(g)[[4]]
summary(g)[[6]]
summary(g)[[7]]
summary(g)[[8]]

输出:

> summary(g)[[4]]
                Estimate  Std. Error    t value  Pr(>|t|)
(Intercept) -19.50504910 28.40530273 -0.6866693 0.4957383
speed         6.80110597  6.80113480  0.9999958 0.3225441
I(speed^2)   -0.34965781  0.49988277 -0.6994796 0.4877745
I(speed^3)    0.01025205  0.01129813  0.9074113 0.3689186
> summary(g)[[6]]
[1] 15.20466
> summary(g)[[7]]
[1]  4 46  4
> summary(g)[[8]]
[1] 0.6731808

但必须有更好的方法将摘要方法的优点与列表索引结合起来。