R:reactive{}中的多个输入
嗨,我是新来的。我试图为我的用户创建两个交互式selectInputs,以便在表中显示数据。下面是我的代码的样子: 用户界面 服务器.RR: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,
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)
)
})