Вопрос
Несмотря на то, что оба используют один и тот же фрейм реактивных данных, почему гистограмма не соответствует данным, показанным в таблице в моем приложении блестящий ?
Обзор
В настоящее время я размещаю фрейм данных iris
в df
- реактивное выражение , которое использует ввод переключателя и упорядочивает данные на основена base::switch()
.После этого df
отображается в двух формах: гистограмма и таблица.
Беда в том, что гистограмма не реагирует на переключатель, в то время как таблица реагирует.Мой желаемый результат - расположение гистограммы в порядке возрастания / убывания - на основе переключателя - таким же образом, как таблица.
Любые разъяснения о том, почему это происходит и как я могу решить эту проблему, будут очень благодарны!
Код
# load necessary package
library( shiny )
library( tidyverse )
# create UI
ui <- fluidPage(
title = "Reactive Programming"
, plotOutput( outputId = "my.barplot" )
, radioButtons( inputId = "direction"
, label = "Arrange the data:"
, choices = c("Ascending", "Descending")
, selected = "Descending"
, inline = TRUE )
, tableOutput( outputId = "my.table" )
)
# create server
server <- function( input, output, session){
# arrange iris in ascending/descending order based on the "Sepal.Length" column
df <- reactive({
switch( EXPR = input$direction
, "Ascending" = iris %>% arrange( Sepal.Length )
, "Descending" = iris %>% arrange( desc( Sepal.Length ) ) )
})
# plot df()
output$my.barplot <- renderPlot({
ggplot( data = df() ) +
geom_bar( aes( x = Species
, y = Sepal.Length )
, stat = "identity" )
})
# show df()
output$my.table <- renderTable({
df()
})
}
# run App
shinyApp( ui = ui, server = server )
# end of script #
Информация о сеансе
R version 3.4.4 (2018-03-15)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.2
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] forcats_0.3.0 stringr_1.3.0 dplyr_0.7.4 purrr_0.2.4 readr_1.1.1
[6] tidyr_0.8.0 tibble_1.4.2 ggplot2_2.2.1 tidyverse_1.2.1 shiny_1.0.5
loaded via a namespace (and not attached):
[1] Rcpp_0.12.16 cellranger_1.1.0 pillar_1.2.1 compiler_3.4.4
[5] plyr_1.8.4 bindr_0.1.1 tools_3.4.4 digest_0.6.15
[9] lubridate_1.7.3 jsonlite_1.5 nlme_3.1-131.1 gtable_0.2.0
[13] lattice_0.20-35 pkgconfig_2.0.1 rlang_0.2.0 psych_1.7.8
[17] cli_1.0.0 rstudioapi_0.7 yaml_2.1.18 parallel_3.4.4
[21] haven_1.1.1 bindrcpp_0.2 xml2_1.2.0 httr_1.3.1
[25] hms_0.4.2 grid_3.4.4 glue_1.2.0 R6_2.2.2
[29] readxl_1.0.0 foreign_0.8-69 modelr_0.1.1 reshape2_1.4.3
[33] magrittr_1.5 scales_0.5.0 htmltools_0.3.6 rvest_0.3.2
[37] assertthat_0.2.0 mnormt_1.5-5 colorspace_1.3-2 mime_0.5
[41] xtable_1.8-2 httpuv_1.3.6.2 stringi_1.1.7 lazyeval_0.2.1
[45] munsell_0.4.3 broom_0.4.3 crayon_1.3.4