GrandTotal in DT Shiny with dynamic column quantity












0















How to add total row in DT in Shiny app like in example



enter image description here



I exlplored some topic here, but how to add total in Mean_price column, it's calculate total Turnover / total Qty



How to add total if column quantity in DT dynamicaly changed?










share|improve this question





























    0















    How to add total row in DT in Shiny app like in example



    enter image description here



    I exlplored some topic here, but how to add total in Mean_price column, it's calculate total Turnover / total Qty



    How to add total if column quantity in DT dynamicaly changed?










    share|improve this question



























      0












      0








      0


      1






      How to add total row in DT in Shiny app like in example



      enter image description here



      I exlplored some topic here, but how to add total in Mean_price column, it's calculate total Turnover / total Qty



      How to add total if column quantity in DT dynamicaly changed?










      share|improve this question
















      How to add total row in DT in Shiny app like in example



      enter image description here



      I exlplored some topic here, but how to add total in Mean_price column, it's calculate total Turnover / total Qty



      How to add total if column quantity in DT dynamicaly changed?







      r shiny dt






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 19 '18 at 14:10









      Yihui Xie

      20.8k11106284




      20.8k11106284










      asked Nov 19 '18 at 11:24









      Qwery WalterQwery Walter

      11




      11
























          1 Answer
          1






          active

          oldest

          votes


















          1














          Welcome to SO!



          Here is a solution using library(data.table):



          library(data.table)
          library(DT)

          ui <- basicPage(
          h2("Grand total"),
          DT::dataTableOutput("mytable")
          )

          server <- function(input, output) {

          DT <- data.table (Product = paste("Item", seq(10)), Turnover = round(runif(10, 1000, 3000)), Qty=round(runif(10, 100, 120)), Mean_price=round(runif(10, 10, 30), digits = 2))
          totalDT <- as.data.table(c(Product = "Total", DT[, lapply(.SD, sum, na.rm=TRUE), .SDcols=c("Turnover", "Qty")]))
          totalDT[, "Mean_price" := round(Turnover/Qty, digits = 2)]

          myContainer = htmltools::withTags(table(
          tableHeader(DT),
          tableFooter(as.character(totalDT))
          ))

          output$mytable = DT::renderDataTable({
          DT::datatable(DT, options = list(pageLength = nrow(DT)), rownames = FALSE, container = myContainer)
          })
          }

          shinyApp(ui, server)


          See this for row specific styling.



          Edit, after further specification of the desired output (footer):
          you don't need a callback-function to create a footer, please see this.






          share|improve this answer


























          • Sorry, I mean how use js to make grand total line below the DT like this topic stackoverflow.com/questions/49135787/…

            – Qwery Walter
            Nov 19 '18 at 21:26













          • I updated my answer accordingly, please check.

            – ismirsehregal
            Nov 19 '18 at 23:32











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53373601%2fgrandtotal-in-dt-shiny-with-dynamic-column-quantity%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          Welcome to SO!



          Here is a solution using library(data.table):



          library(data.table)
          library(DT)

          ui <- basicPage(
          h2("Grand total"),
          DT::dataTableOutput("mytable")
          )

          server <- function(input, output) {

          DT <- data.table (Product = paste("Item", seq(10)), Turnover = round(runif(10, 1000, 3000)), Qty=round(runif(10, 100, 120)), Mean_price=round(runif(10, 10, 30), digits = 2))
          totalDT <- as.data.table(c(Product = "Total", DT[, lapply(.SD, sum, na.rm=TRUE), .SDcols=c("Turnover", "Qty")]))
          totalDT[, "Mean_price" := round(Turnover/Qty, digits = 2)]

          myContainer = htmltools::withTags(table(
          tableHeader(DT),
          tableFooter(as.character(totalDT))
          ))

          output$mytable = DT::renderDataTable({
          DT::datatable(DT, options = list(pageLength = nrow(DT)), rownames = FALSE, container = myContainer)
          })
          }

          shinyApp(ui, server)


          See this for row specific styling.



          Edit, after further specification of the desired output (footer):
          you don't need a callback-function to create a footer, please see this.






          share|improve this answer


























          • Sorry, I mean how use js to make grand total line below the DT like this topic stackoverflow.com/questions/49135787/…

            – Qwery Walter
            Nov 19 '18 at 21:26













          • I updated my answer accordingly, please check.

            – ismirsehregal
            Nov 19 '18 at 23:32
















          1














          Welcome to SO!



          Here is a solution using library(data.table):



          library(data.table)
          library(DT)

          ui <- basicPage(
          h2("Grand total"),
          DT::dataTableOutput("mytable")
          )

          server <- function(input, output) {

          DT <- data.table (Product = paste("Item", seq(10)), Turnover = round(runif(10, 1000, 3000)), Qty=round(runif(10, 100, 120)), Mean_price=round(runif(10, 10, 30), digits = 2))
          totalDT <- as.data.table(c(Product = "Total", DT[, lapply(.SD, sum, na.rm=TRUE), .SDcols=c("Turnover", "Qty")]))
          totalDT[, "Mean_price" := round(Turnover/Qty, digits = 2)]

          myContainer = htmltools::withTags(table(
          tableHeader(DT),
          tableFooter(as.character(totalDT))
          ))

          output$mytable = DT::renderDataTable({
          DT::datatable(DT, options = list(pageLength = nrow(DT)), rownames = FALSE, container = myContainer)
          })
          }

          shinyApp(ui, server)


          See this for row specific styling.



          Edit, after further specification of the desired output (footer):
          you don't need a callback-function to create a footer, please see this.






          share|improve this answer


























          • Sorry, I mean how use js to make grand total line below the DT like this topic stackoverflow.com/questions/49135787/…

            – Qwery Walter
            Nov 19 '18 at 21:26













          • I updated my answer accordingly, please check.

            – ismirsehregal
            Nov 19 '18 at 23:32














          1












          1








          1







          Welcome to SO!



          Here is a solution using library(data.table):



          library(data.table)
          library(DT)

          ui <- basicPage(
          h2("Grand total"),
          DT::dataTableOutput("mytable")
          )

          server <- function(input, output) {

          DT <- data.table (Product = paste("Item", seq(10)), Turnover = round(runif(10, 1000, 3000)), Qty=round(runif(10, 100, 120)), Mean_price=round(runif(10, 10, 30), digits = 2))
          totalDT <- as.data.table(c(Product = "Total", DT[, lapply(.SD, sum, na.rm=TRUE), .SDcols=c("Turnover", "Qty")]))
          totalDT[, "Mean_price" := round(Turnover/Qty, digits = 2)]

          myContainer = htmltools::withTags(table(
          tableHeader(DT),
          tableFooter(as.character(totalDT))
          ))

          output$mytable = DT::renderDataTable({
          DT::datatable(DT, options = list(pageLength = nrow(DT)), rownames = FALSE, container = myContainer)
          })
          }

          shinyApp(ui, server)


          See this for row specific styling.



          Edit, after further specification of the desired output (footer):
          you don't need a callback-function to create a footer, please see this.






          share|improve this answer















          Welcome to SO!



          Here is a solution using library(data.table):



          library(data.table)
          library(DT)

          ui <- basicPage(
          h2("Grand total"),
          DT::dataTableOutput("mytable")
          )

          server <- function(input, output) {

          DT <- data.table (Product = paste("Item", seq(10)), Turnover = round(runif(10, 1000, 3000)), Qty=round(runif(10, 100, 120)), Mean_price=round(runif(10, 10, 30), digits = 2))
          totalDT <- as.data.table(c(Product = "Total", DT[, lapply(.SD, sum, na.rm=TRUE), .SDcols=c("Turnover", "Qty")]))
          totalDT[, "Mean_price" := round(Turnover/Qty, digits = 2)]

          myContainer = htmltools::withTags(table(
          tableHeader(DT),
          tableFooter(as.character(totalDT))
          ))

          output$mytable = DT::renderDataTable({
          DT::datatable(DT, options = list(pageLength = nrow(DT)), rownames = FALSE, container = myContainer)
          })
          }

          shinyApp(ui, server)


          See this for row specific styling.



          Edit, after further specification of the desired output (footer):
          you don't need a callback-function to create a footer, please see this.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 19 '18 at 23:29

























          answered Nov 19 '18 at 17:27









          ismirsehregalismirsehregal

          1,4761211




          1,4761211













          • Sorry, I mean how use js to make grand total line below the DT like this topic stackoverflow.com/questions/49135787/…

            – Qwery Walter
            Nov 19 '18 at 21:26













          • I updated my answer accordingly, please check.

            – ismirsehregal
            Nov 19 '18 at 23:32



















          • Sorry, I mean how use js to make grand total line below the DT like this topic stackoverflow.com/questions/49135787/…

            – Qwery Walter
            Nov 19 '18 at 21:26













          • I updated my answer accordingly, please check.

            – ismirsehregal
            Nov 19 '18 at 23:32

















          Sorry, I mean how use js to make grand total line below the DT like this topic stackoverflow.com/questions/49135787/…

          – Qwery Walter
          Nov 19 '18 at 21:26







          Sorry, I mean how use js to make grand total line below the DT like this topic stackoverflow.com/questions/49135787/…

          – Qwery Walter
          Nov 19 '18 at 21:26















          I updated my answer accordingly, please check.

          – ismirsehregal
          Nov 19 '18 at 23:32





          I updated my answer accordingly, please check.

          – ismirsehregal
          Nov 19 '18 at 23:32




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53373601%2fgrandtotal-in-dt-shiny-with-dynamic-column-quantity%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          這個網誌中的熱門文章

          Tangent Lines Diagram Along Smooth Curve

          Yusuf al-Mu'taman ibn Hud

          Zucchini