Как сгенерировать вывод var_label()?

#r #shiny

#r #блестящий

Вопрос:

Я пытаюсь получить вывод метки в shiny, используя textOutput функцию с var_label из labelled пакета. Я попробовал пару вещей, но я не могу просмотреть метку в выходных данных. Ошибка, которую я получаю, Error in var_label.data.frame: object 'var1' not found .

Код:

 
library(shiny)
library(labelled)
library(haven)

dat <- read_spss("http://staff.bath.ac.uk/pssiw/stats2/SAQ.sav")


ui <- fluidPage(
     sidebarLayout(
        sidebarPanel(
            selectInput("var1", "Frequency Table", choices =  names(dat), selected = NULL)
        ),

        mainPanel(
            verbatimTextOutput("name"),
           textOutput("label")
        )
    )
)


server <- function(input, output) {

    output$name <- renderPrint({
        input$var1
    })
    
    output$label <- renderText({
        var_label(input$var1)
    })
}

shinyApp(ui = ui, server = server)
  

Ответ №1:

Проблема в том, что input$var1 это имя переменной. Он не содержит никакой информации о переменной в вашем наборе данных. Чтобы получить метку, связанную с вызываемой переменной, input$var1 используйте var_label(dat[[input$var1]]) .