我正在用 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)} 在文本中打印和操作这些对象。