2

如何创建一个看起来像这样的表:

            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 放在第三行和第二列(如上所示)的问题,但我遇到了问题,我不确定它是否适用于 wdTable

我在 这个论坛上找到了一个相关的讨论,但它并没有真正触及它的核心。它将整个内容输出为文本,而不是选定的项目作为表格。

任何帮助将非常感激

PS 要运行 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)
4

1 回答 1

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"))
于 2012-05-05T20:47:25.717 回答