ss.study.ca:如何存储图形以及如何禁止显示警告

时间:2020-04-13 06:37:28

标签: r

两个问题:

  1. 我喜欢以与ggplot相同的方式存储和处理ss.study.ca()的输出:

    p1 <- ggplot(..) + ...
    p2 <- ss.study.ca(....)
    multiplot(p1, p2, rows = 2)         # this function puts 2 graphs on 1 page           
    

    但是p2似乎想要一个页面。

  2. 第二个问题是ss.study.ca()返回NULL和警告消息,例如:

    1:在ss.study.ca(df_temp $ Value,LSL =(df_temp $ LimitLo)[1],USL =(df_temp $ LimitHi)[1] ,: 正常测试失败

    当我在循环中使用ss.study.ca时,我想抑制两条消息。

感谢提供任何解决方案的指针。

2 个答案:

答案 0 :(得分:0)

谢谢您的提问,Luc。

  1. ss.study.ca()不会生成ggplot,而是生成网格图(内部带有ggplots)。但是,由于ggplot在内部也使用网格系统,因此可以将SixSigma和ggplot2图与grid和gridExtra软件包合并。这是一个对我有用的可重现示例:
    library(SixSigma)
    library(gridExtra)
    library(grid)
    library(ggplot2)
    grid.arrange(grid.grabExpr(
      ss.study.ca(ss.data.ca$Volume, rnorm(40, 753, 3), 
                  LSL = 740, USL = 760, T = 750, alpha = 0.05, 
                  f.sub = "Winery Project")),
      ggplot(data.frame(x=rnorm(100)), aes(x)) + geom_histogram()
    )
  1. 您可以在将表达式包含在preventWarnings函数内的循环中禁止显示警告。这是一个简单的示例,可能会有更多的表达式:
    suppressWarnings({
      ss.study.ca(rexp(40, 0.01),
                  LSL = 740, USL = 760, T = 750, alpha = 0.05, 
                  f.sub = "Winery Project")
    })

我不确定NULL消息,如果不能通过preventWarnings函数进行修复,那么reprex会有所帮助。

答案 1 :(得分:0)

感谢您的配合。 suppressWarnings()调用确实删除了警告和NULL。

虽然我确认提供的示例grid.arrange((....))可以正常工作,但是在我的代码中,只有ggplot()有所不同,但我得到的错误消息如下:

Error in grabDL(warn, wrap, wrap.grobs, ...) : 
  'list' object cannot be coerced to type 'double'

这是由ggplot()的内容引起的吗?

相关问题