R shiny:编辑表格输出的格式

时间:2015-01-07 13:56:37

标签: r shiny

我正在使用shiny(使用renderTable和tableOutput)输出表,有没有办法编辑表的格式和表中的值。

具体来说我想

  • 使用逗号作为1000 superator(即将1234567更改为1,234,567)
  • 一个
  • 中的每个值前加上一个£符号
  • 将最后一行设为粗体
  • 删除行名称

所以,如果你采取闪亮的反应,例如作为一个例子

runExample('03_reactivity')

这会输出一个表'view',server.R代码为

  output$view <- renderTable({
    head(datasetInput(), n = input$obs)
  })

它的ui.R代码是

tableOutput("view")

在这个例子中,我想输出

area    peri        shape   perm
£4,990  2,791.90    0.09    6.30
£7,002  3,892.60    0.15    6.30
£7,558  3,930.66    0.18    6.30
£7,352  3,869.32    0.12    6.30
£7,943  3,948.54    0.12    17.10
£7,979  4,010.15    0.17    17.10
£9,333  4,345.75    0.19    17.10
£8,209  4,344.75    0.16    17.10
£8,393  3,682.04    0.20    119.00
£6,425  3,098.65    0.16    119.00 

(标题保持粗体,底行也是粗体,结果是stackoverflow同样难以获得我想要的格式;)

1 个答案:

答案 0 :(得分:5)

您好我在答案中添加了评论,希望这会有所帮助。在此处查看Datatables以获取有关如何自定义表的更多信息。

rm(list = ls())
library(shiny)
library(scales)

# Sample Data
area <- seq(from=10,to=100, by=10)
peri <- seq(from=2710.1,to=2800.1, by=10)
shape <- seq(from=0.1,to=1, by=0.1)
perm <- seq(from=1,to=100, by=10)
my_data <- as.data.frame(cbind(area,peri,shape,perm))

ui = fluidPage(
  sidebarLayout(
    sidebarPanel(),
    mainPanel(
      tableOutput("view"),
      #4 Make the final row bold using tags$style
      tags$style(type="text/css", "#view tr:last-child {font-weight:bold;}")
    ),
  )
)

server = function(input, output) {
  output$view <- renderTable({
    test <- my_data
    #1 Comma Seperator as 1000: you can use the library(scales) and the comma function
    test$peri<-comma(test$peri)
    #2 Out the "£" sign before every value in column 1 (or any column): you can use paste0
    test$area <- paste0("£",test$area)
    test
    #3 Remove row names : use inlcude.rownames=FALSE
  },include.rownames=FALSE)

}
runApp(list(ui = ui, server = server))