【问题标题】:How to render print with gWidgets in R?如何在 R 中使用 gWidgets 渲染打印?
【发布时间】:2013-06-21 01:53:06
【问题描述】:

我正在尝试使用 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

这可以通过使用 renderPrint 和 verbatimTextOutput 轻松完成。我希望gWidgets也有一些东西。

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

【问题讨论】:

    标签: r rendering gwidgets shiny


    【解决方案1】:

    使用gtext 和capture.output:

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

    【讨论】:

    • 对于类似摘要的内容,在 gtext 中设置 wrap=FALSE 可能也是有意义的。
    • 我离解决方案只有一步之遥,但我就是想不通!十分感谢你的帮助! @Dason 建议使用wrap=FALSE 也很有用。
    【解决方案2】:

    例如,您可以使用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"))
    

    结果不是那么美好,但我认为这是一个好的开始......

    【讨论】:

    • 我也想过这个,使用gmessage。但是为了让它更漂亮,我需要以一种艰难的方式重现print.summary.**** 函数。我只是认为应该有更好更干净的方法。
    猜你喜欢
    • 2015-05-18
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多