繁体   English   中英

R Shiny Bar图和input $ var问题

[英]R Shiny Bar Plot and input$var issue

输入变量类型存在一些问题,阻止了R Shiny工作。 下拉列表已生成,我可以选择该变量,但是未生成任何图,并且未收到任何错误消息。 如果直接用ggplot替换数据框名称和字段(注释一),则会生成条形图。 我尝试了as.character(给我一个错误),没有转换或as.factor(没有错误,但是没有生成条形图)。

library(shiny)
library(ggplot2)
# DEFINE UI FUNCTION #######################################
ui <- fluidPage(
  titlePanel("Charting GE Data"),
  sidebarLayout(
    sidebarPanel(
      # Dropdown menu for selecting variable from GE data.
      selectInput("var2",
                  label = "Select X Axis Variable",
                  choices = c("Indicator_Type" = 12, "Class" = 13),
                  selected = 13)  # Default selection
    ),
    mainPanel(
      plotOutput("BarPlot")  
    )
  )
)
# DEFINE SERVER FUNCTION ###################################
server <- function(input, output) {
  # Define bar plot output
  output$BarPlot <- renderPlot({  
    iX   <- as.factor(input$var2) #
    xvar    <- Event_identity_noNAsComp[, iX]
    require(graphics)
   g <- ggplot(Event_identity_noNAsComp, aes(xvar, fill = xvar))
  #  g <- ggplot(Event_identity_noNAsComp, aes(Event_identity_noNAsComp$Class, #fill = Event_identity_noNAsComp$Class))
  g + geom_bar()        
  })
}
# CALL THE SHINY APP #######################################
shinyApp(ui = ui, server = server)

希望这可以帮助...

iX   <- as.numeric(input$var2)

如果不需要提供列号位置,则在提供列名的情况下将起作用:

例如

  # Dropdown menu for selecting variable from GE data.
  selectInput("var2",
              label = "Select X Axis Variable",
              choices = c("Mkt Returns" = "mktreturns", "Mkt Prices" = "mktprices"),
              selected = "mktreturns") 

因此,对我来说,我使用了以下数据集:

summary(df_bm)

     Date        mktreturns          mktprices   

2013-02-14:1分钟 :-2095.500最低 :1890
2013-02-15:1第一届:-13.000第一届:2395
2013-02-18:1中位数:0.000中位数:2665
2013-02-19:1均值:-5.361均值:2597
2013-02-20:1第三名:8.000第三名:2842
2013-02-21:1个以下 :268.000最大值 :3378
(其他):1007

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM