Я работаю с данными опроса, предоставленными в SPSS. Моя задача - сделать приложение Shiny для визуализации. Я ищу способ отображения меток значений внутри столбца на графике, который я создал, а не числа. Например, на вопрос «Пожалуйста, укажите вашу страну» у меня есть: 1 - США, 2 - Польша, 3 - Испания и т. Д.
Во-первых, вот как я читаю данные и выбираю из них только числовые столбцы:
mydata <- read_sav("2018_Poland_Shared_Services_Spot_Poll.sav")
mydata_numeric <- mydata %>% select_if(is.numeric)
Я уже создал приложение Shiny. Вот график, показывающий ответы из опроса на этот вопрос: «Пожалуйста, укажите вашу страну». Показывает страны как 1, 2, 3 ...
ссылка на участок: https://drive.google.com/file/d/1rXcTB7AxjaIGjq_KZEsNWUMHp9ADyjqe/view?usp=sharing
Сначала я попытался просто вручную проверить, существуют ли эти метки в столбце и как они хранятся
attributes(mydata$Q5)[[5]]
и это дает такой вывод:
Czechia (the Czech Republic) Hungary Poland
1 2 3
Romania Slovakia Portugal
4 5 6
что означает, что они определенно есть!
Затем я изменил вывод barplot, чтобы попытаться соединить его с Shiny:
bar <- reactive({
mydata_numeric[, input$barplot]
})
attrs <- reactive({
attributes(mydata_numeric[, input$barplot])[[5]]
})
output$bar <- renderPlotly({
bar <- ggplot(data = mydata_numeric, aes(bar(), label = attrs())) +
geom_bar(color = "darkblue", fill = "lightblue") +
geom_text() +
labs(title = input$barplot, x = NULL)
ggplotly(bar)
})
Я ожидаю увидеть метки на графике вместо цифр. После попытки запустить код я получаю такую ошибку: «подписка за пределами» и пустая страница, конечно. Не могу точно понять, что я делаю неправильно. Буду благодарен за любую помощь!