RShiny 由于输入到 json 而未加载

RShiny not loading due to input to json

提问人:Struan Logan 提问时间:10/17/2023 更新时间:10/18/2023 访问量:30

问:

当我发现错误的原因时,我可能会踢自己,但我无法解决。

我正在尝试制作一个 5 月至 9 月的销售 RShiny 图,并可选择根据产品销售的在线资源进行细分。即使我以前做过一个并将其用作模板,我也会不断收到以下持续错误:

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

加载此错误的图形,但没有文本或图形,只有“错误:[对象对象]”

我完全被难住了,我明天就要在那里工作,所以如果有人有一些建议,我将不胜感激。这是我的代码:

library(shiny)
library(tidyverse)
library(dplyr)
library(plotly)

#Data preparation 

all_sales_may_september_filtered <- read_csv("all_sales_may_september_filtered.csv")

# Define UI

ui <- fluidPage(
  titlePanel("Summer Sales 2023"),
  sidebarLayout(
   sidebarPanel(
  selectInput("source", "Select Source:",
              choices = c("All Sources", unique(all_sales_may_september_filtered$source))),
  uiOutput("sku_selection") # Dynamic UI for SKU Drop Down Selection
),
# Modify the UI
mainPanel(
  plotlyOutput("sales_plot"),
  verbatimTextOutput("sales_info") # Change to verbatimTextOutput
    )
  )
)


# Define server logic
server <- function(input, output, session) {
# Create a dynamic UI for the SKU drop-down menu based on selected "default_source"
  output$sku_selection <- renderUI({
   if (input$source == "All Sources") {
  source_filtered <- all_sales_may_september_filtered
} else {
  source_filtered <- all_sales_may_september_filtered %>% 
    filter(source == input$source)
}
selectInput("sku", "Select SKU:", choices = unique(source_filtered$sku))
 })

 output$sales_plot <- renderPlotly({
filtered_sales <- all_sales_may_september_filtered %>% 
  filter(default_source == input$source | input$source == "All Sources",
         sku == input$sku) %>% 
  group_by(recieved_date) %>% 
  summarise(daily_sales = sum(order_item_quantity))


   plot_ly(filtered_sales, x = ~recieved_date, y = ~daily_sales, type = "scatter", mode = "lines",
        line = list(color = "goldenrod")) %>% 
  layout(xaxis = lis`your text`t(title = "Order Date"),
         yaxis = list(title = "Total Sold"),
         title = "Summer Sales of 2023")

})

   # Modify the renderUI for sales_info
 output$sales_info <- renderPrint({
filtered_sales <- all_sales_may_september_filtered %>% 
  filter(default_source == input$source | input$source == "All Sources",
         sku == input$sku) %>% 
  summarise(daily_sales = sum(order_item_quantity),
            default_source = unique(default_source))

# Create a character vector with the information
output_text <- paste("Daily Sales:", filtered_sales$daily_sales, "\nDefault Source:",       filtered_sales$default_source)

   # Return the character vector
   return(output_text)

})

  # Run the app`your text`
 shinyApp(ui = ui, server = server)

我曾多次尝试编辑 renderUI 并讨论了 ChatGPT 的帮助,但没有任何成果。

我也试着把情节拿出来,不要把事情弄得太复杂,但仍然没有结果。

R 亮闪 亮仪表板

评论

0赞 David Jorquera 10/18/2023
当您的代码不可重现时,很难提供帮助。你有样品吗?all_sales_may_september_filtered.csv

答:

0赞 David Jorquera 10/18/2023 #1

就像我在评论中提到的,如果没有可重复的数据集,就很难提供帮助。但是,该错误消息似乎正在尝试分析不是数据帧的对象。plotly

在这种情况下,每当你想制作一组动态的选项时,你应该把它变成一个对象,然后你可以像这样在里面进行评估。看看这是否有帮助(用这个替换你的):reactiveselectInputoutput$sku_selection

# Create a dynamic UI for the SKU drop-down menu based on selected "default_source"
sku_selection <- reactive({
    if (input$source == "All Sources") {
      all_sales_may_september_filtered
    } else {
      all_sales_may_september_filtered %>% 
        filter(carb == input$source)
    }
  })
  
  output$sku_selection <- renderUI({
    
    selectInput("sku", "Select SKU:", choices = unique(sku_selection()$sku))
  })