1

我正在使用 和 的组合将各种对象(、's、's 等)的汇总表导出xtable到Latex / rtableWord /Powerpoint。但是,我不太喜欢默认方式,其中 p 值在逗号后以固定位数给出。相反,我更愿意它给我 p 值的格式与使用带有 的基本 R 函数得到的格式相似,即,将 p 值四舍五入为两位有效数字——在本例中为 4.2e-17 和 0.25)。ReporteRsaovglmlmformat.pval()digits=2

例如

ctl = c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt = c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group = gl(2, 10, 20, labels = c("Ctl","Trt"))
weight = c(ctl, trt)
fit = lm(weight ~ group)
s=summary(fit)
s

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   4.8465     0.1557  31.124   <2e-16 ***
group1        0.1855     0.1557   1.191    0.249    

library(xtable)
library(rtable)
library(ReporteRs)
tab=as.FlexTable(xtable(s))
tab

在此处输入图像描述

我希望 p 值以与 中类似的方式格式化summary(fit),但是(右对齐,四舍五入到两位有效数字,在本例中为 4.2e-17 和 0.25)。任何人都知道如何以通用方式实现这一点,理想情况下,对于由 支持的所有对象给出的 p 值xtable

编辑:在下面的帮助下,我现在制作了一个带有辅助函数的[small package export]table2doctable2ppt并将table2html先前显示的 R stats 对象导出到 Word、Powerpoint 或 HTML(并使用函数graph2ppt并将graph2doc当前活动的图形导出到 Powerpoint 或 Word),见 https://cran.r-project.org/web/packages/export/index.htmlhttps://github.com/tomwenseleers/export

4

1 回答 1

2

定义一个帮助函数,它将查找 p 值的签名,我将其视为其中包含“Pr”的那些列名:

xtable2 <- function(x, ...) {  sm <- x[['coefficients']]; ncol <- ncol(sm)
                             whch<- grep("Pr", colnames(sm))
                             digs <- rep(4, ncol+1); digs[whch+1] <- 2
                             disp <-rep("f", ncol+1); disp[whch+1] <- "g"
                  xtable(x, digits= digs, display=disp, ...) }

> tab <- as.FlexTable(xtable2(s)); tab

在此处输入图像描述

于 2015-07-08T00:48:09.547 回答