gpt4 book ai didi

R Shiny 错误 : object input not found

转载 作者:行者123 更新时间:2023-12-04 04:25:20 26 4
gpt4 key购买 nike

以下代码是我的 Shiny ui:

library(shiny)
shinyUI(fluidPage(

titlePanel("All Country Spend"),

sidebarLayout(
sidebarPanel( selectInput("split",
label = "Choose Fill For the Chart",
choices = c("Action.Obligation","Action_Absolute_Value"),
selected = "Action.Obligation"
)
),
mainPanel(plotOutput("SpendChart"))
)
))

以下是服务器代码:
library(shiny)
library(ggplot2)

shinyServer(function(input, output) {

spend <- read.csv("data/Ctrdata.csv")
output$SpendChart <- renderPlot({

Country <- spend$Principal.Place.of.Performance.Country.Name
ggplot(spend, aes(x = Country, y = input$split)) + geom_bar(stat = "identity")

})

})

每次我运行它时,我都会收到以下错误:

"Error in eval(expr, envir, enclos) : object 'input' not found"



我正在尝试渲染一个简单的条形图,它将在每个国家/地区的契约(Contract)支出的净值和绝对值之间切换,但它无法识别来自 selectInput 的名为“split”的输入。盒子。

这是我的数据框示例:
data.frame(Country = c("Turk", "Turk", "Saudi", "Saudi", "Ger", "Ger"),
Action.Obligation = c(120,-345,565,-454, 343,-565),
Action_Absolute_Value = c(120,345,565,454,343,565))

最佳答案

问题在于 ggplot 在提供的数据框的上下文中评估变量,在您的情况下花费。你想要的是:

ggplot(spend, aes_string(x = "Country", y = input$split))

所以你的工作 server.R 代码是:
library(shiny)
library(ggplot2)

shinyServer(function(input, output) {

spend <- data.frame(Country = c("Turk", "Turk", "Saudi", "Saudi", "Ger", "Ger"),
Action.Obligation = c(120,-345,565,-454, 343,-565),
Action_Absolute_Value = c(120,345,565,454,343,565))

output$SpendChart <- renderPlot({


ggplot(spend, aes_string(x = "Country", y = input$split)) +
geom_bar(stat = "identity")

})

})

显然,您可以将支出 df 替换为 CSV 导入。

关于R Shiny 错误 : object input not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483389/

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