我有一个闪亮的应用程序,可以显示绘图或打印数据帧。虽然它同时执行这两项操作,但它只打印数据框的前10行并添加“... 86多行”。我想显示至少40行数据帧。我试过了一个& head(a,n = 50)但它只显示总共10行。如何让它显示更多行。
这就是我所拥有的
output$IPLMatch2TeamsPlot <- renderPlot({
printOrPlotIPLMatch2Teams(input, output)
})
# Analyze and display IPL Match table
output$IPLMatch2TeamsPrint <- renderPrint({
a <- printOrPlotIPLMatch2Teams(input, output)
head(a,n=50)
#a
})
output$plotOrPrintIPLMatch2teams <- renderUI({
# Check if output is a dataframe. If so, print
if(is.data.frame(scorecard <- printOrPlotIPLMatch2Teams(input, output))){
verbatimTextOutput("IPLMatch2TeamsPrint")
}
else{ #Else plot
plotOutput("IPLMatch2TeamsPlot")
}
})
ui.R
tabPanel("Head to head",
headerPanel('Head-to-head between 2 IPL teams'),
sidebarPanel(
selectInput('matches2TeamFunc', 'Select function', IPLMatches2TeamsFuncs),
selectInput('match2', 'Select matches', IPLMatches2Teams,selectize=FALSE, size=20),
uiOutput("selectTeam2"),
radioButtons("plotOrTable1", label = h4("Plot or table"),
choices = c("Plot" = 1, "Table" = 2),
selected = 1,inline=T)
),
mainPanel(
uiOutput("plotOrPrintIPLMatch2teams")
)
答案 0 :(得分:3)
当您知道输出将是data.frame而不仅仅是任何随机文本时,您可以选择针对显示表格数据而优化的输出。您可以尝试renderTable
和tableOutput
而不是renderPrint
和verbatimTextOutput
。另一个选项是DT包中的renderDataTable
。这将创建一个表,在额外的行上放置额外的行,以便您可以访问所有行,并且可以随时修改它将显示的行数。
例如,使用以下内容替换当前的renderPrint
:
output$IPLMatch2TeamsPrint <- DT::renderDataTable({
a <- printOrPlotIPLMatch2Teams(input, output)
datatable(a,
options = list(
"pageLength" = 40)
)
})
并将verbatimTextOutput("IPLMatch2TeamsPrint")
替换为DT::dataTableOutput("IPLMatch2TeamsPrint")
应该为您提供一个包含40行的表格,并选择将更多行视为表格中的不同页面。
您可能还希望将名称从打印更改为表格,以便清晰,因为您不仅仅是打印了。