我是R Shinyapps的新手,因此,我的问题听起来有点愚蠢。
请对此表示歉意。
我正在努力根据所需的列格式将数据放入表中。
当前,该表如下所示:
所以表中有11列,我希望这些列的格式如下:
关于如何执行此操作的任何建议?
我已经使用下面的“ 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")],)
我尝试使用“数字= 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)
如果renderTable不能完全控制所需的选项,最好的办法是使用sprintf()将列格式化为字符,这将使您完全可以控制显示的内容。
之后,您可以通过使用renderTable()中的align =参数将它们作为数字向右对齐,从而可以为每列指定单独的对齐方式。