gpt4 book ai didi

html - 显示以屏幕宽度 [Shiny] 换行的值向量

转载 作者:太空宇宙 更新时间:2023-11-04 09:21:40 25 4
gpt4 key购买 nike

我有一个值向量,每个值都与一个名称相关联;矢量的长度根据用户输入而变化。尽管我使用了 table 相关命令,但我想知道显示此类数据的其他方法,它本质上是一个带有名称的值的向量(单行)。当选定的样本大小产生大于屏幕宽度的输出时,问题就会出现。水平滚动允许灵活地浏览数据,但我正在寻找一种解决方案,它可以在屏幕宽度上包装数据并在不需要滚动的情况下打印多行。这是要播放的代码:

ui <- fluidPage(
tabPanel("Test",
numericInput("samsize","specify sample size",4,1,52),
tableOutput('table')
))

server <- function(input, output) {

data <- reactive({

# create a vector of lower- and upper- case alphabets
# create a vector assigning numbers to alphabets
alphabets <- c(letters,LETTERS)
Index <- seq(1,length(alphabets),1)
names(Index) <- alphabets

# sample values
SampleIndex <- sample(Index,input$samsize)

# convert it into a matrix
data <- matrix(SampleIndex,nrow=1)
colnames(data)=names(SampleIndex)

data
})

output$table <- renderTable(data(),digits = 0)

}

shinyApp(ui, server)

正如您在下图中看到的,对于样本大小“36”,需要水平滚动页面才能看到所有值。 screen shot

renderTable 中的 width 没有提供任何解决方案

将数据转换为 html 对象/文本可能是一种选择,但是不确定如何保留名称。

最佳答案

您可以使用 renderUIuiOutput 来创建您自己想要显示的 HTML 对象,例如使用 div:

library(shiny)
ui <- fluidPage(
tabPanel("Test",
numericInput("samsize","specify sample size",4,1,52),
uiOutput('myTable')
))

server <- function(input, output) {
data <- reactive({
alphabets <- c(letters,LETTERS)
Index <- seq(1,length(alphabets),1)
names(Index) <- alphabets

# Notice I don't put the vector in a one row matrix as in you example
sample(Index,input$samsize)
})

library(purrr) # map is a nice alternative to lapply
output$myTable <- renderUI(map(names(data()),~div(strong(.),
div(data()[.]),
style="float:left;padding:10px 20px;")))
}

shinyApp(ui, server)

enter image description here

关于html - 显示以屏幕宽度 [Shiny] 换行的值向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41453524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com