2013-06-24 22 views
2

我想使用gWidgets显示结果摘要,但是我找不到可轻松完成这项工作的小部件。如何使用R中的gWidgets进行打印?

例如,

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) 
lm.D9 <- lm(weight ~ group) 

我想有一个窗口或打印summary(lm.D9)一个文本框。像下面这样:

Call: 
lm(formula = weight ~ group) 

Residuals: 
    Min  1Q Median  3Q  Max 
-1.0710 -0.4938 0.0685 0.2462 1.3690 

Coefficients: 
      Estimate Std. Error t value Pr(>|t|)  
(Intercept) 5.0320  0.2202 22.850 9.55e-15 *** 
groupTrt  -0.3710  0.3114 -1.191 0.249  
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.6964 on 18 degrees of freedom 
Multiple R-squared: 0.07308, Adjusted R-squared: 0.02158 
F-statistic: 1.419 on 1 and 18 DF, p-value: 0.249 

这可以用闪亮的使用renderPrintverbatimTextOutput轻松完成。我希望在gWidgets也有一些东西。

一个相关的问题,我可以使用capture.output将摘要写入文本文件。如果有一个可以打开文本文件并在用户界面中显示内容的小部件将会很有帮助。

回答

3

使用gtextcapture.output

out <- paste(capture.output(summary(lm.D9)), collapse="\n") 
w <- gwindow() 
txt <- gtext(out, cont=w, font.attr=c(family="monospace")) 
+0

对于像摘要这样的东西,在gtext中设置'wrap = FALSE'也是有意义的。 – Dason

+0

我离解决方案只有一步之遥,但我无法想象它!十分感谢你的帮助! @Dason使用'wrap = FALSE'的建议也非常有用。 – Zhenglei

1

你也许可以使用glabel例如:

win <- gwindow("Summary regression", visible=TRUE) 
group <- ggroup(horizontal = FALSE, container=win) 
obj <- glabel(as.character(summary(lm.D9)), 
     container=group, font.attr=list(style="bold")) 

enter image description here

结果是不是很漂亮,但我认为这是一个良好的开端...

+0

我也想过abou这个,使用'gmessage'。但为了让它更美观,我需要以一种很难的方式重现'print.summary。****'函数。我只是觉得应该有更好更干净的方式去。 – Zhenglei

相关问题