Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据反应性输入修改我的rChart?_R_Shiny_Rcharts - Fatal编程技术网

根据反应性输入修改我的rChart?

根据反应性输入修改我的rChart?,r,shiny,rcharts,R,Shiny,Rcharts,我写的一些代码有问题 以下是数据集的示例: 目标: 我有一个数据集,其中包含一列购买月份,糖果和频率,该类型糖果在该月份购买的次数 我有一个rPlot,我将根据SelectInput中选择的糖果条对其进行更改。并根据当月购买糖果的次数输出一个折线图 下面是我的当前代码,但它告诉我找不到candyCount ## ui.R ## library(shinydashboard) library(rCharts) dashboardPa

我写的一些代码有问题

以下是数据集的示例:

目标: 我有一个
数据集
,其中包含一列
购买月份
糖果
频率
,该类型糖果在该月份购买的次数

我有一个
rPlot
,我将根据
SelectInput
中选择的糖果条对其进行更改。并根据当月购买糖果的次数输出一个折线图

下面是我的当前代码,但它告诉我找不到
candyCount

        ## ui.R ##
        library(shinydashboard)
        library(rCharts)

        dashboardPage(
          dashboardHeader(title = "Dashboard"),

          dashboardSidebar(
            width = 150,
            sidebarMenu(
              menuItem("Dashboard", tabName = "dashboard", icon = icon("bar-chart"))
            )

          ),

          dashboardBody(

          sidebarPanel(

              htmlOutput("candy")

            ),
            mainPanel(
              showOutput("plot2", "polycharts")
            ))




            )

    ##server.R##   
        library(rCharts)
        library(ggplot2)
        library(ggvis)

    server <- function(input, output, session) { 

      output$candy <- renderUI({

        available2 <- dataset[(dataset$candy == input$candy), "candy"]

        selectInput(
          inputId = "candy",
          label = "Choose a candy:  ",
          choices = sort(as.character(unique(available2))),
          selected = unique(available2[1])
        )
      })
      observeEvent(input$candy, {
    candyChoice<- toString(input$customer_issue)
    print(candyChoice)
    candyCount<- dataset[dataset$candy == candyChoice, ]
  })
      })

      output$plot2 <- renderChart2({
        p2 <- rPlot(freq~purchase_month, data = candyCount, type = 'line')
        p2$guides(y = list(min = 0, title = ""))
        p2$guides(y = list(title = sprintf("%s Claims",input$candy)))
        p2$addParams(height = 300, dom = 'chart2')
        return(p2)
      })


      }
##ui.R##
图书馆(shinydashboard)
图书馆(艺术)
仪表板页面(
仪表板标题(title=“Dashboard”),
仪表板侧栏(
宽度=150,
侧边栏菜单(
菜单项(“仪表板”,tabName=“仪表板”,icon=图标(“条形图”))
)
),
仪表板主体(
侧栏面板(
htmlOutput(“糖果”)
),
主面板(
显示输出(“plot2”、“polycharts”)
))
)
##服务器。R###
图书馆(艺术)
图书馆(GG2)
图书馆(ggvis)

服务器At
available2
您正在使用
dataset$candy==input$candy
筛选有关选定糖果的数据。但是,您可以使用相同的
可用2
来确定
选项
位于
选择输入
。我猜您想要:
可用2
在上面的示例中,
ui
呈现一个ID为
candy
selectInput
。该值,即所选的糖果现在分配给
input$candy
范围。在
服务器
中,我们有一个
反应式
功能,监视任何
输入
更改。当用户选择一个新的糖果时,此函数,
df[其中(df[,2]==input$candy),3]
表示“通过新的
input$candy将我的数据框df子集化”。这现在被分配给
selectedData()
。最后,我们呈现出盒状图

编辑

server.R

require(rCharts)
options(RCHART_WIDTH = 500)
df <- read.csv("path/to/my.csv")
shinyServer(function(input, output, session) {
  selectedData <- reactive({
    df[which(df[,2] == input$candy),]
  })

  output$plot1 <- renderChart({
    p <- rPlot(freq~purchase_month, data = selectedData(), type = "line")
    p$addParams(dom = 'plot1')
    return(p)
  })
})

将文件保存在目录中,然后
runApp

请提供一个。没有一些玩具数据是很难帮忙的。也就是说,你在序言中写道,你有一个名为《糖果》(Candy)的专栏,但在你的代码中写着《糖果》(Candy)(在黑暗中拍摄)。请记住,R是区分大小写的。我提供了一个示例数据集。我只是使用
available2
在我的
selectInput
中帮助创建子集。我认为我的主要问题是从
observeEvent
函数开始。当我打印
CandyChoice
时,每当我更改
选择Input
时,该值都会更改。我只是不知道如何将该值输入到
CandyCount
中,然后让它在
CandyCount
中绘制数据。关于
available2
,请注意,您正在尝试使用一个
输入
,该输入应该由相同的
available2
定义@amwill04更好地解释了这一点。此外,请注意,您希望在
选项中列出所有可能的糖果,而不仅仅是用户选择的糖果。也许将
排序(如.character(unique(available2)))
打印出来会更清晰。你能解释一下这行中发生了什么吗:df[which(df[,2]==input$candy),3]?我的答案有点扩展了。同样感谢您提供的示例,但我收到了以下错误:eval(I,data,env)中的错误:数值“envir”arg的长度不是oneSorry@Nick,我已经重新排列了您的csv,并且忘记了更改其子集所在的列。已修复该问题,该示例将立即生效调用时返回
df
output$candy <- renderUI({

    available2 <- dataset[(dataset$candy == input$candy), "candy"]

    selectInput(
      inputId = "candy",
      label = "Choose a candy:  ",
      choices = sort(as.character(unique(available2))),
      selected = unique(available2[1])
    )
  })
library(shiny)
df <- read.csv("/path/to/my.csv")

ui <- shinyUI(pageWithSidebar(

       headerPanel('Candy Data'),
       sidebarPanel(
             selectInput('candy', 'Candy', unique(as.character(df[,2])), selected = "Twix")

         ),
       mainPanel(
             plotOutput('plot1')
         )
 ))

server <- shinyServer(function(input, output, session) {
  selectedData <- reactive({
    df[which(df[,2] == input$candy),3]
  })

  output$plot1 <- renderPlot({
    barplot(selectedData())
  })

})

shinyApp(ui, server)
require(rCharts)
options(RCHART_WIDTH = 500)
df <- read.csv("path/to/my.csv")
shinyServer(function(input, output, session) {
  selectedData <- reactive({
    df[which(df[,2] == input$candy),]
  })

  output$plot1 <- renderChart({
    p <- rPlot(freq~purchase_month, data = selectedData(), type = "line")
    p$addParams(dom = 'plot1')
    return(p)
  })
})
require(rCharts)
options(RCHART_LIB = 'polycharts')
shinyUI(pageWithSidebar(

  headerPanel('Candy Data'),
  sidebarPanel(
    selectInput('candy', 'Candy', unique(as.character(df[,2])), selected = "Twix")

  ),
  mainPanel(
    showOutput('plot1', 'polycharts')
  )
))