提问人:Struan Logan 提问时间:10/17/2023 更新时间:10/18/2023 访问量:30
RShiny 由于输入到 json 而未加载
RShiny not loading due to input to json
问:
当我发现错误的原因时,我可能会踢自己,但我无法解决。
我正在尝试制作一个 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 的帮助,但没有任何成果。
我也试着把情节拿出来,不要把事情弄得太复杂,但仍然没有结果。
答:
0赞
David Jorquera
10/18/2023
#1
就像我在评论中提到的,如果没有可重复的数据集,就很难提供帮助。但是,该错误消息似乎正在尝试分析不是数据帧的对象。plotly
在这种情况下,每当你想制作一组动态的选项时,你应该把它变成一个对象,然后你可以像这样在里面进行评估。看看这是否有帮助(用这个替换你的):reactive
selectInput
output$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))
})
评论
all_sales_may_september_filtered.csv