我有一个大型数据表,我正在使用R Shiny renderTable来显示。它是我希望显示为货币的数字数据,日期,字符串和数字的混合。我想指定显示时要应用的格式列表。我不想改变底层数据的数据类型(比如sprintf会这样做),因为我需要数字数据保持数字,以便进行与某些小部件处理的数据的被动更改相关的其他操作。示例(我有比这更多的列):
Region Rank Name Amount . . .many other columns
1.00 1.00 Thing1 50.00 . . .many other values
并希望得到:
Region Rank Name Amount . . .many other columns
1 1 Thing1 $50.00 . . .many other formatted values
代码看起来像这样(来自单选按钮的用户输入):
server <- function(input, output) {
data <- reactive({
if (input$region=="13"){
mydata[Rank<=25]
}
else {
mydata[Region==as.numeric(input$region)]}
})
output$tbl <- renderTable({data()
})
}
我意识到我可以在反应数据函数的末尾插入格式化代码,但就像我上面写的那样,我有很多很多列,我希望避免在这里创建大量代码。我想我可以遍历列并应用列表中的格式。但是,我希望在表格呈现之前/之前尽可能晚地应用这些格式。原因(未在此处显示)是我将进行一些更复杂的数值运算。理想情况下,renderTable中的格式。据我所知,renderTable应该采用数字向量和对应xtable参数的显示。但是,我无法找到如何执行此操作的示例。
很抱歉这个问题很长。希望这是有道理的。