我已经在这样的任务中挣扎了几个小时: 在R Shiny我需要显示一个表,其中包含一列整数,行之间的确定(相对较大)间距。
spacing
函数中有renderTable()
参数,但即使将其设置为最大值'l'
,仍然不足以达到我的目的。
我尝试使用xtable并考虑Adjust row height xtable R中的示例,但没有结果(我不了解CSS)。
我在网络上找到的最自然的方法是使用DT
包以及Scroller
扩展程序,但以下代码仍未提供结果
ui.R:
fluidPage(
sidebarLayout(
sidebarPanel(
dataTableOutput('dtable', width = '50%') # argument 'height' does not work here
),
mainPanel()
)
)
server.R:
library(shiny)
library(DT)
function(input, output) {
output$dtable <- DT::renderDataTable({
data.frame(SSD = c(2, 17, 19, 35))
},
extensions = 'Scroller',
options = list(
dom = 't',
ordering = FALSE,
scroller = list(rowHeight = 100)
)
)
}
它的输出只给出了列名(错误的是什么?),但没有Scroller
扩展名,它会显示预期的表格 - 当然间距太小......
答案 0 :(得分:4)
您想使用rowCallback
选项并为每一行附加一个样式:
library(shiny)
library(DT)
function(input, output) {
output$dtable <- DT::renderDataTable({
data.frame(SSD = c(2, 17, 19, 35))
},
options = list(
dom = 't',
ordering = FALSE,
rowCallback = JS("function(r,d) {$(r).attr('height', '100px')}")
)
)
}
请注意,随着行数的增加,这可能会导致渲染时间增加