首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中单独格式化多列

如何在R中单独格式化多列
EN

Stack Overflow用户
提问于 2020-03-18 20:37:37
回答 2查看 478关注 0票数 0

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

请接受我对此的道歉。

我正在努力按照所需的列格式将数据放入表中。

目前,表如下所示:

因此,我在表中有11列,我希望将这些列格式化如下:

decimal).

  • "Col-11“
  • "Col-2 to Col-7”均有1位小数位,
  • “Col-8 to Col-10”均有0位小数位(不包括2位小数位。

)。

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

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

代码语言:javascript
复制
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")],)

我试过使用“位数= 1”,但它将所有列格式化为1小数位。

我无法找到一种方法为不同小数位在单独的列中应用数字参数。但是,我需要单独设置专栏的格式--我需要这里的专家来帮助我,拜托。我会非常感谢你的。

EN

回答 2

Stack Overflow用户

发布于 2020-03-18 21:42:14

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

代码语言:javascript
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2020-03-18 22:03:25

如果renderTable不能完全控制所需的选项,最好的做法是使用sprintf()将列格式化为字符,这将使您完全控制可以显示的内容。

之后,通过使用align= ()中的renderTable参数,可以将它们对齐为数字对齐,这使您可以为每一列指定单独的对齐方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60747164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档