gpt4 book ai didi

r - Shiny 的 : Input to asJSON(keep_vec_names=TRUE) is a named vector 中的警告 jsonlite

转载 作者:行者123 更新时间:2023-12-03 14:38:35 55 4
gpt4 key购买 nike

考虑这个 Shiny 的应用程序:

library(shiny)
library(ggplot2)

ui <- fluidPage(
radioButtons("type", "Type of plot", choices = c("density", "boxplot")),
plotOutput("plot")
)

server <- function(input, output){
output[["plot"]] <- renderPlot({
if(input$type == "density"){
ggplot(iris, aes(Sepal.Length)) + geom_density()
}else{
ggplot(iris, aes(x = "", y = Sepal.Length)) + geom_boxplot()
}
})
}

shinyApp(ui, server)

当我选择单选按钮“boxplot”时,这条消息来自 jsonlite包出现在 R 控制台中:

Input to asJSON(keep_vec_names=TRUE) is a named vector. In a future version of jsonlite, this option will not be supported, and named vectors will be translated into arrays instead of objects. If you want JSON object output, please use a named list instead. See ?toJSON.



我想了解发生了什么。我应该怎么做才不会收到这条消息?我担心我的应用程序会被 jsonlite 的 future 版本破坏.

最佳答案

打印您的绘图而不是返回绘图对象应该可以工作:

library(shiny)
library(ggplot2)

ui <- fluidPage(
radioButtons("type", "Type of plot", choices = c("density", "boxplot")),
plotOutput("plot")
)

server <- function(input, output){
output[["plot"]] <- renderPlot({
if(input$type == "density"){
ggplot(iris, aes(Sepal.Length)) + geom_density()
}else{
print(ggplot(iris, aes(x = "", y = Sepal.Length)) + geom_boxplot())
}
})
}

shinyApp(ui, server)
伟大的reprex,谢谢。我最近遇到了这个问题,这个解决方案适用于我的目的。希望这可以帮助其他有同样问题的人。 shiny中也有一些 Unresolved 问题与此相关: https://github.com/rstudio/shiny/issues/2673

关于r - Shiny 的 : Input to asJSON(keep_vec_names=TRUE) is a named vector 中的警告 jsonlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58448118/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com