首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一个闪亮的应用程序中使用shinyjs和ggplot2 2::autoplot

在同一个闪亮的应用程序中使用shinyjs和ggplot2 2::autoplot
EN

Stack Overflow用户
提问于 2018-01-04 10:41:05
回答 2查看 573关注 0票数 2

在我闪亮的应用程序中,我使用带有ggplot2::autoplot对象的函数lm

多亏了包ggfortify,这是可能的。

在我闪闪发亮的应用程序上,我也使用shinyjs

在下面的可复制示例中,一旦取消注释library(shinyjs) & useShinyjs(),就会得到错误:

Error in unclass(x) : cannot unclass an environment

有什么解决办法吗?

代码语言:javascript
复制
library(shiny)
library(ggplot2)
library(ggfortify)
#library(shinyjs)

ui <- fluidPage(
    #useShinyjs(),
    div(
        actionButton("run", "Run")
        ,uiOutput("ui_autoplot")
    )   
)

server <- function(input, output, session) {

    data <- iris

    rv_autoplot <- eventReactive(input$run, {
        a <- lm(data = data, Sepal.Length ~ Petal.Length)
        p <- autoplot(a, which = 1:6, label.size = 2, data = data)
        return(p)
    })

    output$autoplot <- renderPlot({
        req(rv_autoplot())
        rv_autoplot()
    })


    output$ui_autoplot <- renderUI({
        plotOutput("autoplot")
    })
}

shinyApp(ui = ui, server = server)

我的sessionInfo()

代码语言:javascript
复制
R version 3.4.1 (2017-06-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.3 LTS

Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/libopenblasp-r0.2.18.so

locale:
 [1] LC_CTYPE=fr_FR.UTF-8       LC_NUMERIC=C               LC_TIME=fr_FR.UTF-8        LC_COLLATE=fr_FR.UTF-8    
 [5] LC_MONETARY=fr_FR.UTF-8    LC_MESSAGES=fr_FR.UTF-8    LC_PAPER=fr_FR.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=fr_FR.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] shinyjs_0.9.1   bindrcpp_0.2    ggfortify_0.4.1 ggplot2_2.2.1   shiny_1.0.5    

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.13     magrittr_1.5     bindr_0.1        munsell_0.4.3    colorspace_1.3-2 xtable_1.8-2     R6_2.2.2        
 [8] rlang_0.1.2      plyr_1.8.4       dplyr_0.7.4      tools_3.4.1      grid_3.4.1       gtable_0.2.0     miniUI_0.1.1    
[15] htmltools_0.3.6  yaml_2.1.14      lazyeval_0.2.0   digest_0.6.12    assertthat_0.2.0 tibble_1.3.4     gridExtra_2.3   
[22] tidyr_0.6.3      glue_1.1.1       mime_0.5         labeling_0.3     compiler_3.4.1   scales_0.5.0     jsonlite_1.5    
[29] httpuv_1.3.5     pkgconfig_2.0.1  Cairo_1.5-9 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-04 11:09:47

它是加载shinyjs后出现的蒙面函数之一。

以下对象被隐藏在“package:methods”中: removeClass,显示

即函数show

您可以通过执行SBista在她的答案中所做的操作或在您的全局环境中重新设置函数来解决这个问题,方法是添加以下内容

代码语言:javascript
复制
show <- methods::show

就在你加载库之后。

票数 3
EN

Stack Overflow用户

发布于 2018-01-04 11:05:03

您可以使用命名空间来调用shinyjs参数,而不是加载库,shinyjs::useShinyjs()似乎适合我。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48093494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档