显示与文本一致的有线表-Sweave Rnw文件

时间:2018-10-22 15:58:18

标签: dataframe pdf-generation knitr sweave kable

我有一个使用kable命令的带有表的Rnw文件。我希望表格显示与其后面的文字一致。如何阻止表格显示在页面顶部?这是Rnw代码:

\documentclass{article}

\begin{document}

Here is my data, which is supposed to be below this sentence.
\\
\begin{abstract}
<<>>=
a <- 1; b <-2; c <-3; d <- 4
df.mse <- data.frame(row.names = c("Normal model", "Laplace model"))
df.mse["Normal model", "Normal MLE"] <- a
df.mse["Normal model", "Laplace MLE"] <- b
df.mse["Laplace model", "Normal MLE"] <- c
df.mse["Laplace model", "Laplace MLE"] <-d
library(knitr)
kable(df.mse, caption="approximate MSE for each model/estimator combination")
@
\end{abstract}


\end{document}

我希望该解决方案不涉及更改实际的Tex文件,因为我希望继续处理Sweave文件而不必担心会覆盖该解决方案。我知道您可以在LaTeX中使用float程序包,但是我不确定如何在Sweave文件的上下文中执行该操作。

1 个答案:

答案 0 :(得分:0)

在对kable的呼叫中不要包含标题。然后,它将只输出一个tabular环境,而不将其包装在table浮点数中。如果不需要标题,仅表示在调用caption时忽略了kable参数。

如果确实要添加标题,但希望将该表插入行内,则需要以\begin{table}[h]开始该表。您可以像这样将其放在Rnw文件中:

<<>>=
a <- 1; b <-2; c <-3; d <- 4
df.mse <- data.frame(row.names = c("Normal model", "Laplace model"))
df.mse["Normal model", "Normal MLE"] <- a
df.mse["Normal model", "Laplace MLE"] <- b
df.mse["Laplace model", "Normal MLE"] <- c
df.mse["Laplace model", "Laplace MLE"] <-d
library(knitr)
@
\begin{table}[h]
\caption{This is the caption.}
<<echo=FALSE>>=
kable(df.mse)
@
\end{table}