Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
R:reactive{}中的多个输入_R_Shiny - Fatal编程技术网

R:reactive{}中的多个输入

R:reactive{}中的多个输入,r,shiny,R,Shiny,嗨,我是新来的。我试图为我的用户创建两个交互式selectInputs,以便在表中显示数据。下面是我的代码的样子: 用户界面 服务器.R library(shiny) library(ggplot2) library(dplyr) df <- readRDS("data/df.rds") shinyServer(function(input, output) { datasetInput <- reactive({ switch(input$var,

嗨,我是新来的。我试图为我的用户创建两个交互式selectInputs,以便在表中显示数据。下面是我的代码的样子: 用户界面

服务器.R

library(shiny)
library(ggplot2)
library(dplyr)
df <- readRDS("data/df.rds")

shinyServer(function(input, output) {

 datasetInput <- reactive({

    switch(input$var,
           "ALL" = df,
           "A2" = df %>% filter(country == "A2"),
           "AE" = df %>% filter(country == "AE"))


    switch(input$plat,
           "ALL" = df,
           "Android" = df %>% filter(platform == "Android"),
           "IPhonePlayer" = df %>% filter(platform == "IPhonePlayer"))



  })


   output$view <- renderTable({head(datasetInput())})

})
库(闪亮)
图书馆(GG2)
图书馆(dplyr)
df%过滤器(国家==“AE”))
开关(输入$plat,
“全部”=df,
“Android”=df%>%过滤器(平台==“Android”),
“IPhonePlayer”=df%>%过滤器(平台==“IPhonePlayer”))
})

输出$view尝试将第一个
开关的结果分配给
df
。现在,两个
开关
未连接,而
无功
仅返回第二个开关的结果

df <- switch(input$var,
       "ALL" = df,
       "A2" = df %>% filter(country == "A2"),
       "AE" = df %>% filter(country == "AE"))
df%过滤器(国家==“A2”),
“AE”=df%>%过滤器(国家==“AE”))

这不是你想要的,但我认为你可以像这样改进你的代码:

datasetInput <- reactive({
  df %>%
    filter(
      (input$var  == 'ALL' | country == input$var) &
      (input$plat == 'ALL' | country == input$plat)
    )
})
datasetInput%
滤器(
(输入$var='ALL'|国家==输入$var)&
(输入$plat=='ALL'|国家==输入$plat)
)
})

你能说得更详细些吗?我试着按照你的建议分配它,但还是得到了同样的结果。我一定是分配错了。非常感谢。非常感谢。这确实给我省去了一些麻烦。
datasetInput <- reactive({
  df %>%
    filter(
      (input$var  == 'ALL' | country == input$var) &
      (input$plat == 'ALL' | country == input$plat)
    )
})