将变量名传递到fre命令

时间:2019-06-20 18:40:52

标签: r shiny expss

我正在尝试将变量集传递到select输入中,并将其名称用于expss::fre命令。

我的对象带有列名及其标签,例如'myvars'

a1_1, "Do you like apples?"
a1_2, "Do you like oranges?"

我正在使用它们:

selectInput(vars, "Select variable", myvars)

然后,在“服务器”部分,我想用它来生成简单的频率表。

output$view <- renderTable( {
        fre(input$variable)
}

问题在于,在fre中,我必须传递带有数据集名称的变量:

fre(data$a1_1)

所以我尝试了evalquo!!paste0("data$",input$vars)等,但没有成功。

当我尝试使用switch时:

switch(input$vars, "a1_1"=fre(data$a1_1), "a1_2"=fre(data$a1_2))

它工作正常,但我需要更灵活的解决方案。 如何做得好?

1 个答案:

答案 0 :(得分:1)

以下代码可以解决问题:

output$view <- renderTable({
        fre(data[[input$vars]])
})