在"安装并重启"之后,ShinyApp中的ggplotly失败了。在R包中

时间:2018-02-22 13:52:43

标签: r ggplot2 rstudio plotly devtools

我在R包中有一个ShinyApp。其中一个图是{ggplot2}和函数ggplotly。当我在一个新的Rstudio会话中运行应用程序时,这个数字是有效的。但是,如果我使用“安装并重新启动”来构建我的软件包,则会显示以下错误消息而不是图:

  

VECTOR_ELT()只能应用于'列表,而不是' NULL'

重现问题

我可以用一个全新的R包和一个甚至不在包中的ShinyApp来重现这个问题。为此,请在Rstudio中执行以下步骤:

将以下ShinyApp保存在某个文件

这是使用{ggplot2}和[plotly}

修改的基本示例
#
# This is a Shiny web application. You can run the application by clicking
# the 'Run App' button above.
#
# Find out more about building applications with Shiny here:
#
#    http://shiny.rstudio.com/
#

library(shiny)
library(ggplot2)
library(plotly)

# Define UI for application that draws a histogram
ui <- fluidPage(

   # Application title
   titlePanel("Old Faithful Geyser Data"),

   # Sidebar with a slider input for number of bins 
   sidebarLayout(
      sidebarPanel(
         sliderInput("bins",
                     "Number of bins:",
                     min = 1,
                     max = 50,
                     value = 30)
      ),

      # Show a plot of the generated distribution
      mainPanel(
        plotlyOutput("distPlot")
      )
   )
)

# Define server logic required to draw a histogram
server <- function(input, output) {

   output$distPlot <- renderPlotly({
      # generate bins based on input$bins from ui.R
      x    <- faithful[, 2] 
      # bins <- seq(min(x), max(x), length.out = input$bins + 1)

      # draw the histogram with the specified number of bins
      g <- ggplot(data.frame(x)) +
        aes(x) +
        geom_histogram(bins = input$bins)

      ggplotly(g)
      # hist(x, breaks = bins, col = 'darkgray', border = 'white')
   })
}

# Run the application 
shinyApp(ui = ui, server = server)

在Rstudio中

  • 为R包创建一个新项目(使用hello World示例)
  • 打开此项目
  • 在Rstudio会话
  • 中打开您从上面代码中保存的应用文件(无论它在哪里)
  • 运行应用
  • 在导航器中关闭应用
  • 在Rstudio中停止应用
  • 稍微修改一下文件并保存。 (也许没用)
  • 使用&#34;安装并重新启动&#34;
  • 构建您的软件包
  • 再次运行应用 =&GT;应该出现错误
      

    VECTOR_ELT()只能应用于&#39;列表,而不是&#39; NULL&#39;

  • (编辑)然后,如果我直接在控制台中运行它(虽然它可以正常工作)

    ggiris <- qplot(Petal.Width, Sepal.Length, data = iris, color = Species)
    ggplotly(ggiris)  
    
  

grid.Call中的错误(C_convert,x,as.integer(whatfrom),as.integer(whatto),:     VECTOR_ELT()只能应用于&#39;列表,而不是&#39; NULL&#39;

修改:如果使用devtools::install()代替&#39;安装并重启&#39;问题没有出现

我不知道这是来自{plotly},{ggplot2}还是{devtools}。
我有:

  • {ggplot2} dev版本:v2.2.1.9000(与CRAN版本相同)
  • {plotly} dev版本4.7.1.9000(不工作)。 CRAN版本:4.7.1(不工作)。
  • {devtools} CRAN版本1.13.5(不工作)

0 个答案:

没有答案