消息的堆栈跟踪"输入到asJSON(keep_vec_names = TRUE)是一个命名向量.在jsonlite的未来版本中......"

Roy*_*y C 5 json r shiny

输入到asJSON(keep_vec_names = TRUE)是一个命名向量.在jsonlite的未来版本中,将不支持此选项,并且命名向量将被转换为数组而不是对象.如果您想要JSON对象输出,请改用命名列表.见?toJSON.

所以我在运行Shiny App时会收到此消息,但不是错误或警告,App仍然运行良好.并没有告诉我错误在哪里.

我试过options(warn = 2)但没有改变.

编辑:

我编写的这段代码可能没有任何意义,但我不允许提供源代码.幸运/不幸的是,问题仍然存在.

library(shiny)

foo = function(data){
  plt1 = ggplot(aes(y = mpg, x = as.factor(am)), data = data) + 
    geom_boxplot() + ggtitle('Boxplot:')

  mx = quantile(data$mpg,.999,na.rm = TRUE)
  plt2 = ggplot(data, aes(x=mpg, colour=as.factor(am))) + 
    geom_density(size=0.5)+  xlim(0,mx) + ggtitle('Density plot')

  list(data, plt1, plt2)
}

ui = fluidPage(
  dataTableOutput("tbl"),
  plotOutput("plt1"),
  plotOutput("plt2")
)

server = function(input, output, session){
  o <- reactive({
    foo(mtcars)
  })

  output$tbl <- renderTable({
    o()[[1]]
  })

  output$plt1 <- renderPlot({
    o()[[2]]
  })

  output$plt2 <- renderPlot({
    o()[[3]]
  })
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

use*_*330 0

您可以通过运行来调试问题debug(jsonlite:::warn_keep_vec_names)。当调用发出警告的函数时它将中断,并且您可以看到哪些函数处于活动状态。当它在浏览器中停止时,运行where以查看活动堆栈。在 RStudio 中,您还可以在 Traceback 窗格中看到堆栈跟踪:您可能想要启用Show Internals.