以 LaTeX 格式报告 R 结果

以 LaTeX 格式报告 R 结果

我正在用 LaTeX(使用 Overleaf)写论文,并在 R 中分析了一些数据。所以我有一个 R 脚本,用于执行一系列测试和回归。现在我想在文本中包含 t 统计量和 p 值。

x <- rnorm(10, 180, 10)
y <- rnorm(10, 150, 10)

我们的假设 x 比 y 更高被接受 (t = t.test(x , y)$statisic; p = t.test(x, y)$p.value).

St 在最终的 pdf 中写道:

我们的假设“x 比 y 更高”被接受 (t =-7.8841, p = 0.000)。

最简单的方法是什么?工作流程是什么?

我将非常感谢任何关于使用 LaTeX 的建议。尤其感谢有关 Overleaf 的建议。

答案1

示例代码胜过千言万语:

\documentclass{article}
\begin{document}
<<echo=F,results="hide">>=
set.seed(100)
options(scipen=0)
x <- rnorm(10, 155, 10)
y <- rnorm(10, 150, 10)
accept <- if (t.test(x,y)$p.value>0.05) {print("rejected")} else {print("accepted")}
@
Our hypothesis that $x$ is taller than $y$ was \Sexpr{accept}  (%
t=\Sexpr{round(t.test(x,y)$statistic,2)}; 
p=\Sexpr{signif(t.test(x,y)$p.value,2)}).
\end{document}

.Rtex使用Overleaf 中的扩展名保存它,或者.Rnw如果您使用的是 Rstudio。当然,在这种情况下,您应该已经安装了 R 和软件包knitr,以将文件转换.Rnw为真正的 LaTeX 文件 (.tex),并安装了 LaTeX 发行版以进行 .tex 到 .pdf 的转换。无论如何,结果将是:

我们的假设X高于被拒绝(t=0.76;p=0.46)。

或者,将“155”替换为“180”(第 6 行):

我们的假设X高于被接受(t=8.46;p=3.4 × 10⁷)。

答案2

它与 knitr 包一​​起工作,在 overleaf 中您不需要加载它。

里面的一切

<<echo= F>>=
#Code goes here
d <- read.csv("data.csv")

@

是 R 代码。如果您像这样在块中创建对象,则可以使用 \Sexpr{head(d)} 在文本中打印和操作这些对象。

相关内容