Quantcast
Channel: Add columns to a reactive data frame in Shiny and update them - Stack Overflow
Viewing all articles
Browse latest Browse all 3

Add columns to a reactive data frame in Shiny and update them

$
0
0

I would like to be able to calculate a new column of data based on dividing one column by another, with both original columns selected by a user input. I would like to have this calculated data joined to the original table (or a copy of it).

I have managed to figure out how to make a dataframe that reacts to the column input selection, and I have managed to make a calculation that divides one column by the other, but I have not been able to make a final dataframe that includes all of the original columns as well as the new calculated one.

Here is a mock up I have made using the built in Iris data. It displays the data for the columns selected in the first table, and the calculation in the second table (you will need to scroll down quite far to see this).

How can I join this calculated data to the original source?

Many thanks

#Ui        pageWithSidebar(      headerPanel('Calculate Column'),      sidebarPanel(        #select variables from iris dataset        selectInput('xcol', 'X Variable', names(iris)),        selectInput('ycol', 'Y Variable', names(iris),                    selected=names(iris)[[2]])      ),      mainPanel(        #display the selected variables            tableOutput("view"),         #display the calculated variable            tableOutput("view2")      )    )#Server        function(input, output, session) {      # Combine the selected input variables into a new data frame      selectedData <- reactive({        iris[, c(input$xcol, input$ycol),]      })      # divide one variable selection by the other      selectedData2 <- reactive({                iris$new<-iris[, c(input$xcol)]/iris[, c(input$ycol)]        })      # create data output for selected variables      output$view <- renderTable({selectedData()      })      # create data output for calculated variable      output$view2 <- renderTable({selectedData2()      })    }

Viewing all articles
Browse latest Browse all 3

Latest Images

Trending Articles





Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>
<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596344.js" async> </script>