如何在R中分别设置多个列的格式 [英] How to format multiple columns separately in R Shiny

查看:0
本文介绍了如何在R中分别设置多个列的格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是R Shinyapp的新手,因此,我的问题可能听起来有点愚蠢。

请接受我对此的歉意。

我正在根据所需的列格式将数据放入表中。

目前,该表如下:

所以我在表中有11列,我希望这些列的格式如下:

  • "COL-2到COL-7"都有1位小数位。
  • "COL-8至COL-10"均为0位小数(无小数)。
  • "COL-11",小数位数为2位。

对如何做到这一点有什么建议吗?

我使用了下面的renderTable函数来生成表:

output$table <- renderTable(align="c", digits = 1, width="auto", na="-", subset(all, PRODUCT_NAME==as.character(input$product_choice))
                          [,c("Col-1", "Col-2", "Col-3", "Col-4", "Col-5", "Col-6", "Col-7", "Col-8", 
                              paste0("Col-9 ",input$cur), paste0("Col-10 ",input$cur), "Col-11")],)

我已尝试使用"Digits=1",但它将所有列的格式设置为小数点后1位。

我找不到一种方法来将Digits参数应用于不同列中的不同小数位。 但是,我需要分别设置列的格式 我需要这里的专家来帮我做这件事。 我将非常感谢您。

推荐答案

使用程序包DT,您可以选择要按名称或编号设置格式的列。此外,formatRound不是此程序包提供的唯一格式类型(请参阅formatCurrency等):

library(shiny)
library(DT)

ui <- fluidPage(
  dataTableOutput("test")
)

server <- function(input, output, session) {

  output$test <- renderDataTable({
    DT::datatable(iris) %>% 
      formatRound("Petal.Length", digits = 2, mark = "") %>%
      formatRound(1, digits = 4)
  })

}

shinyApp(ui, server)

这篇关于如何在R中分别设置多个列的格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆