gpt4 book ai didi

r - 使用 R/Knitr/Rstudio 中的表包测试 latex 表内的统计数据(即卡方检验)

转载 作者:行者123 更新时间:2023-12-04 10:14:11 25 4
gpt4 key购买 nike

我想使用表包中的 tabular() 函数对两个变量(例如 v1 和 v2)进行交叉制表,并在表中显示 chisq-test 的 p 值。很容易得到交叉表,但我无法得到表内的 p 值。这是我一直在尝试的,没有任何运气:

enter image description here

\documentclass{article}

\begin{document}

<<echo=TRUE,message=FALSE>>=
library(Hmisc)
library(tables)
v1 <- sample(letters[1:2],200,replace=TRUE)
v2 <- sample(month.name[1:3],200,replace=TRUE)
df <- data.frame(v1,v2)
@

It is straight forward to get the crosstabulation:
<<results='asis'>>=
latex( tabular( Factor(v1) ~ Factor(v2) , data=df) )
@

But I cant get the p-value inside the table:

<<results='asis'>>=
latex( tabular( Factor(v1)*chisq.test(v1,v2)$p.value ~ Factor(v2) , data=df) )
@

\end{document}

最佳答案

我不知道怎么做 tables::tabular但这可以通过 Hmisc::summary.formula.reverse 来实现假设您已将系统配置为通过 latex() 生成 pdf 文件。我不得不搜索 Rhelp 文件以找出“exclude1”参数需要进入 latex参数列表。一旦您返回文档 exclude1确实出现在latex.summary.formula.reverse的用法示例中虽然我以为我正在阅读 summary.rms 的帮助页面:

library(Hmisc)
latex(summary( v2 ~ v1, data=df, method="reverse" ,test=TRUE), exclude1=FALSE)

enter image description here

如果您想通过将输出分配给命名文件将它嵌入到更长的文档中,您可以“一路”拦截 latex 输出。
latex(summary( v2 ~ v1, data=df,  method="reverse" ,test=TRUE), exclude1=FALSE, file="")
#--------
% latex.default(cstats, title = title, caption = caption, rowlabel = rowlabel, col.just = col.just, numeric.dollar = FALSE, insert.bottom = legend, rowname = lab, dcolumn = dcolumn, extracolheads = extracolheads, extracolsize = Nsize, ...)
%
\begin{table}[!tbp]
\caption{Descriptive Statistics by v2\label{summary}}
\begin{center}
\begin{tabular}{lcccc}
\hline\hline
\multicolumn{1}{l}{}&\multicolumn{1}{c}{February}&\multicolumn{1}{c}{January}&\multicolumn{1}{c}{March}&\multicolumn{1}{c}{Test Statistic}\tabularnewline
&\multicolumn{1}{c}{{\scriptsize $N=56$}}&\multicolumn{1}{c}{{\scriptsize $N=73$}}&\multicolumn{1}{c}{{\scriptsize $N=71$}}&\tabularnewline
\hline
v1~:~a&43\%~{\scriptsize~(24)}&47\%~{\scriptsize~(34)}&44\%~{\scriptsize~(31)}&$ \chi^{2}_{2}=0.21 ,~ P=0.901 $\tabularnewline
~~~~b&57\%~{\scriptsize~(32)}&53\%~{\scriptsize~(39)}&56\%~{\scriptsize~(40)}&\tabularnewline
\hline
\end{tabular}
\end{center}
Numbers after percents are frequencies.\\\noindent Test used:\\Pearson test\end{table}

关于r - 使用 R/Knitr/Rstudio 中的表包测试 latex 表内的统计数据(即卡方检验),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16510666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com