0

在我的ui.R 中,我有带有 3 个输入的侧边栏:

selectInput("category"...)
selectInput("program"...)
sliderInput("year"...)

我的数据框df的列将类别年份程序年份相结合,即:prog1year、prog2year、category1year ...

当我选择 selectInput selectInput("category")sliderInput("year")我的主要数据框df按类别年份进行过滤,并且df1的生成如下:

df1 <- new_df %>% select_(.dots = c("City", paste0(input$category, input$year)))

结果是:category1year,category2year ...

选择selectInput("program")sliderInput("year")后,我需要返回主df并按程序年份过滤结果:program1year,program2year ...

And when all 3 controls are choosen I need df to be filtered by columns named like progyear and categoryyear

现在我可以按类别年份进行过滤,但不能使其适用于程序输入。

这么说我不能再次调用主df:

  names(new_df)<- sub("category", "", names(df))
  new_df <- new_df %>% select_(.dots = c("City",paste0(input$category, input$year)))
  colnames(new_df) <- c("City", "Category")

现在,当我想使用selectInput("program")时,它会搜索new_df,其中prog1、prog2..的列不存在。

关于猪排提供的解决方案,尝试过:

  new_df <- reactive({})
  new_df <- new_df %>% select_(.dots = c("City",   paste0(input$category, input$year)))
  colnames(new_df) <- c("City", "Category")
  new_df <- new_df %>% select_(.dots = c("City", paste0(input$program, input$year)))
  colnames(new_df) <- c("City", "Program")

我得到错误:

没有适用于“选择_”的方法应用于“反应”类的对象

我被困在这里。

您能否提供任何最小的示例,例如:

if (selectinput1 == choosen)...

谢谢

4

0 回答 0