为报表中的表创建自定义布局

时间:2012-05-03 12:33:01

标签: r tabular

如何创建一个如下所示的表:

            Estimate Std. Error t value Pr(>|t|)
(Intercept)    5.032      0.220  22.850    0.000
groupTrt      -0.371      0.311  -1.191    0.249
                       (Adjusted-R squared: 0.02)

来自以下对象?

    #DATA
    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)


    A<-(lm(weight ~ group)) 
    A<-summary(A)     
    B<-round(A$coefficients,3)
    R<-paste("(Adjusted R-squared:",round(A$adj.r.squared,2),")")

我特别感兴趣的是因为我一直在玩着能够输出精彩表格的优秀R2wd(至少对于那些在工作场所限制使用Word的人来说)。

require(R2wd)
library(rcom)
wdGet(T)
wdNewDoc("c:\\temp\\This.doc")
wdTitle("My Analysis Title")

接下来我需要做的是找到一种方法将向量A和R组合成一个类似于表的对象,该对象将由函数wdTable()格式化。它非常整齐地输出B. 试试:

   wdTable(B)

但我不太清楚如何加入B和R以便他们制作一张合适的桌子。我想这将把矢量R放在第3行和第2列(如上图所示),但我遇到了问题,我不确定它是否适用于wdTable

我找到了相关的讨论 this forum但它并没有真正触及它的核心。它将整个事物作为文本而不是选定的项目输出为表格。

任何帮助都会非常感激

P.S。运行R2wd如果不运行此

,则需要安装Word句柄
    install.packages(c("R2wd","rcom"))
    source("http://www.r-statistics.com/wp-content/uploads/2010/05/R-console-to-word.r.txt")

   txtStart.2wd()
   #Follow instructions (shows you commands to install the R handle)
   txtStop.2wd(F)

1 个答案:

答案 0 :(得分:1)

我只是尝试在调用wdtable()之前将行绑定到数据帧。你可以拆分字符串R并用新元素填充新行中的单元格。

像这样:

require(R2wd)

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)

A <- summary(lm(weight ~ group))     
B <- round(A$coefficients,3)

# I edited the next line..
R <- paste("(Adjusted R-squared: ",round(A$adj.r.squared,2),")", sep = "")
# split it up:
R <- c(" ", unlist(strsplit(R, " ")))

# row-bind it:
R <- data.frame(rbind(B, " " = R))
colnames(R) <- colnames(A$coefficients)

wdGet()

# print table to doc in word default format:
wdTable(format(R), autoformat = 1)
wdSave(path.expand("~/My_Table.doc"))     # save file
wdQuit()                                  # close handler

shell.exec(path.expand("~/My_Table.doc"))