2015-01-07 4 views
3

Я выводил таблицу с использованием блестящей (с renderTable и tableOutput), есть способ редактировать формат таблицы и значений внутри таблицы.R shiny: Изменить формат вывода таблицы

В частности я хочу

  • Используйте запятую в качестве 1000 superator (т.е. изменение 1234567 до 1234567)
  • Поставьте £ знак перед каждым значением в один колонке
  • Сделать окончательный ряд полужирный
  • Удалить названия строк

Так что если вы возьмете блестящие реактивы например, В качестве примера

runExample('03_reactivity') 

Это выводит таблицу 'вид', код 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 также трудно получить в формате, который я хочу;))

ответ

4

Привет, я добавил комментарии в свой ответ, надеюсь, это поможет. Обратитесь к 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)) 
+0

Вы можете посмотреть на пакет DT, если вы хотите работать с DataTables: https://github.com/rstudio/DT –

+0

О это сладкое, я не знал об этом пакете и большинство вещей, которые я делаю на datatable, с тегами $ style или tags $ scrip, Cheers для этого –

Смежные вопросы