Ritwik Mohapatra
2020-Nov-07 10:42 UTC
[R] Data Table not rendering properly using R shiny
Hi All, I have a data output as below.I want to display them in an interactive html report using shiny but the data table is not rendering properly and instead giving NA values. max_usage_hours_per_region<-setNames(aggregate(df3_machine_region$sum_as_hours~df3_machine_region$Region,df3_machine_region,max),c("Region","Sum_as_Hours")) Region Sum_as_Hours 1 Africa 1156.0833 2 Americas 740.1667 3 APAC 740.2833 4 Europe 1895.2000 5 PDO 1053.3500 6 UK 0.0000 Rshiny code: library(shiny) ui <- fluidPage( selectInput("Region","Select Region",max_usage_hours_per_region$Region,selected = TRUE), tableOutput("table") ) server <- function(input, output) { output$table <- renderTable( max_usage_hours_per_region[input$Region,]) } shinyApp(ui = ui, server = server) [[alternative HTML version deleted]]
Better to post on RStudio support, I think. Shiny is an RStudio package and product and this list if for R language/programming help. The two are separate. Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Sat, Nov 7, 2020 at 2:43 AM Ritwik Mohapatra <ritm84 at gmail.com> wrote:> Hi All, > > I have a data output as below.I want to display them in an interactive html > report using shiny but the data table is not rendering properly and instead > giving NA values. > > > max_usage_hours_per_region<-setNames(aggregate(df3_machine_region$sum_as_hours~df3_machine_region$Region,df3_machine_region,max),c("Region","Sum_as_Hours")) > > Region Sum_as_Hours > 1 Africa 1156.0833 > 2 Americas 740.1667 > 3 APAC 740.2833 > 4 Europe 1895.2000 > 5 PDO 1053.3500 > 6 UK 0.0000 > > > Rshiny code: > > library(shiny) > > ui <- fluidPage( > selectInput("Region","Select > Region",max_usage_hours_per_region$Region,selected = TRUE), > tableOutput("table") > ) > server <- function(input, output) { > output$table <- renderTable( > max_usage_hours_per_region[input$Region,]) > } > shinyApp(ui = ui, server = server) > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Hi, Please drop R-Devel as a cc: from this thread for further replies. This topic is definitely not relevant there and cross-posting is not needed, but does require manual moderation. Thanks, Marc Schwartz> On Nov 7, 2020, at 10:23 AM, Bert Gunter <bgunter.4567 at gmail.com> wrote: > > ?Better to post on RStudio support, I think. Shiny is an RStudio package > and product and this list if for R language/programming help. The two are > separate. > > Bert Gunter > > "The trouble with having an open mind is that people keep coming along and > sticking things into it." > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > >> On Sat, Nov 7, 2020 at 2:43 AM Ritwik Mohapatra <ritm84 at gmail.com> wrote: >> >> Hi All, >> >> I have a data output as below.I want to display them in an interactive html >> report using shiny but the data table is not rendering properly and instead >> giving NA values. >> >> >> max_usage_hours_per_region<-setNames(aggregate(df3_machine_region$sum_as_hours~df3_machine_region$Region,df3_machine_region,max),c("Region","Sum_as_Hours")) >> >> Region Sum_as_Hours >> 1 Africa 1156.0833 >> 2 Americas 740.1667 >> 3 APAC 740.2833 >> 4 Europe 1895.2000 >> 5 PDO 1053.3500 >> 6 UK 0.0000 >> >> >> Rshiny code: >> >> library(shiny) >> >> ui <- fluidPage( >> selectInput("Region","Select >> Region",max_usage_hours_per_region$Region,selected = TRUE), >> tableOutput("table") >> ) >> server <- function(input, output) { >> output$table <- renderTable( >> max_usage_hours_per_region[input$Region,]) >> } >> shinyApp(ui = ui, server = server) >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
This looks odd... max_usage_hours_per_region[input$Region,] This would only work if you had rownames on that data frame corresponding to the names of the Regions. This is a common R mistake... you probably need logical_idx <- max_usage_hours_per_region$Region == input$Region max_usage_hours_per_region[ logical_idx,] That said, it is very difficult to separate out R questions when mixed into shiny code, so you would help yourself and this list to work on minimal reproducible examples that focus on the R syntax if possible for posts here. Read the Posting Guide. On November 7, 2020 2:42:58 AM PST, Ritwik Mohapatra <ritm84 at gmail.com> wrote:>Hi All, > >I have a data output as below.I want to display them in an interactive >html >report using shiny but the data table is not rendering properly and >instead >giving NA values. > >max_usage_hours_per_region<-setNames(aggregate(df3_machine_region$sum_as_hours~df3_machine_region$Region,df3_machine_region,max),c("Region","Sum_as_Hours")) > >Region Sum_as_Hours >1 Africa 1156.0833 >2 Americas 740.1667 >3 APAC 740.2833 >4 Europe 1895.2000 >5 PDO 1053.3500 >6 UK 0.0000 > > >Rshiny code: > >library(shiny) > >ui <- fluidPage( >selectInput("Region","Select >Region",max_usage_hours_per_region$Region,selected = TRUE), >tableOutput("table") >) >server <- function(input, output) { >output$table <- renderTable( >max_usage_hours_per_region[input$Region,]) >} >shinyApp(ui = ui, server = server) > > [[alternative HTML version deleted]] > >______________________________________________ >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code.-- Sent from my phone. Please excuse my brevity.
Hello, Or maybe logical_idx <- max_usage_hours_per_region$Region %in% input$Region Another option is ?match Hope this helps, Rui Barradas ?s 15:41 de 07/11/20, Jeff Newmiller escreveu:> This looks odd... > > max_usage_hours_per_region[input$Region,] > > This would only work if you had rownames on that data frame corresponding to the names of the Regions. This is a common R mistake... you probably need > > logical_idx <- max_usage_hours_per_region$Region == input$Region > max_usage_hours_per_region[ logical_idx,] > > That said, it is very difficult to separate out R questions when mixed into shiny code, so you would help yourself and this list to work on minimal reproducible examples that focus on the R syntax if possible for posts here. Read the Posting Guide. > > On November 7, 2020 2:42:58 AM PST, Ritwik Mohapatra <ritm84 at gmail.com> wrote: >> Hi All, >> >> I have a data output as below.I want to display them in an interactive >> html >> report using shiny but the data table is not rendering properly and >> instead >> giving NA values. >> >> max_usage_hours_per_region<-setNames(aggregate(df3_machine_region$sum_as_hours~df3_machine_region$Region,df3_machine_region,max),c("Region","Sum_as_Hours")) >> >> Region Sum_as_Hours >> 1 Africa 1156.0833 >> 2 Americas 740.1667 >> 3 APAC 740.2833 >> 4 Europe 1895.2000 >> 5 PDO 1053.3500 >> 6 UK 0.0000 >> >> >> Rshiny code: >> >> library(shiny) >> >> ui <- fluidPage( >> selectInput("Region","Select >> Region",max_usage_hours_per_region$Region,selected = TRUE), >> tableOutput("table") >> ) >> server <- function(input, output) { >> output$table <- renderTable( >> max_usage_hours_per_region[input$Region,]) >> } >> shinyApp(ui = ui, server = server) >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >