2012-05-03 3 views
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, который может выводить фантастические таблицы (по крайней мере, для людей, которые ограничены в Слове на рабочем месте).

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

Что мне нужно делать дальше, чтобы найти способ совместить векторы и R в табличном объект, который будет отформатирован с помощью функции wdTable(). Он выводит B очень аккуратно попробовать:

wdTable(B) 

, но я не знаю, как присоединиться к B и R таким образом, что они делают соответствующую таблицу. Я предполагаю, что это будет вопрос размещения вектора R в третьем ряду и второго столбца (как он появляется выше), но у меня проблемы с ним, и я не уверен, будет ли он работать с wdTable

Я нашел связанную дискуссию с this forum, но это не очень важно. Он выводит все это как текст, а не выбранные элементы в виде таблицы.

Любая помощь будет очень ценна

P.S. Для запуска R2wd Вы должны иметь Слово ручки установлено, если не запускать этот

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

я бы просто попытаться rbind линии к dataframe перед вызовом 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")) 
+0

Спасибо. Очень хорошее быстрое решение. –

Смежные вопросы