【问题标题】:ui.R returning check-box data to server.R, but how to convert "closure" to vector in the server.R file?ui.R 将复选框数据返回给 server.R,但是如何在 server.R 文件中将“闭包”转换为向量?
【发布时间】:2017-10-22 15:43:36
【问题描述】:

我的 ui.R 文件包含以下内容,允许用户选择复选框。当我尝试通过以下方式在 server.R 文件中理解它时:

a <- renderText({ print(input$checkGroup) })
df <- df %>% filter(match(mfr, a)) %>% select(df)

我收到以下错误:

filter_impl(.data, dots) 中的错误:“匹配”需要向量参数

我尝试在 StackOverflow 上寻找答案,有人建议使用 cat 运算符,但是当我这样做时,我得到了

参数 1(类型 'closure')不能被 'cat' 处理

fluidPage(
  checkboxGroupInput('checkGroup', label = h3("Checkbox group"), 
  choiceNames = list(...),
                 choiceValues = list('N', 'A', 'G', 'K', 'P', 'Q', 'R'),
                 selected = 'N'),
  hr(),
  fluidRow(column(3, verbatimTextOutput("value"))) 
)),

编辑-嘿,谢谢您的评论!在我的情节中,我有以下代码:

<code> x = df[[input$nutri]], </code>

如何修改它以使用 df()?如果我使用 df(),我会收到以下错误:

过滤条件不计算为逻辑向量

我试着把它改成

<code>    r_df <- reactive({df %>% filter(mfr %in% r_a()) %>% select(df)}) </code>

但我明白了

所有 select() 输入必须解析为整数列位置。 以下不: * df

作为提示-我正在检查向量 r_a 是否具有等于 df 中的值的元素。

【问题讨论】:

    标签: r rstudio shiny shiny-server


    【解决方案1】:

    使用反应式:

    r_a <- reactive(input$checkGroup)
    r_df <- reactive({df %>% filter(match(mfr, r_a())) %>% select(df)})
    

    然后在renderPlot 中使用r_df()

    【讨论】:

    • 请看原帖;还有,谢谢你的回复! :)
    • 我成功了!非常感谢你们的帮助!我不得不删除 select(df) 位。
    猜你喜欢
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 2016-07-15
    • 2020-01-20
    相关资源
    最近更新 更多