我正在尝试加载excel文件并显示摘要。文件加载时没有任何错误,但没有显示任何内容。
这是我的代码
ui.R
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Analysis"),
sidebarPanel(wellPanel(fileInput('file1', 'Choose XLSX File',
accept=c('sheetName', 'header'), multiple=FALSE))),
mainPanel(
tabsetPanel(
tabPanel("Tab1",h4("Summary"), htmlOutput("summary"))
)))
server.R
library(shiny)
shinyServer(function(input, output) {
dataset = reactive({
infile = input$file1
if (is.null(infile))
return(NULL)
infile_read = read.xlsx(infile$datapath, 1)
return(infile_read)
})
output$summary <- renderPrint({
summary = summary(dataset())
return(summary)
})
outputOptions(output, "summary", suspendWhenHidden = FALSE)
})
答案 0 :(得分:1)
我没有对此进行测试,但看起来你实际上并没有从dataset()
返回任何内容。将功能更改为:
dataset = reactive({
infile = input$file1
if (is.null(infile))
return(NULL)
read.xlsx(infile$datapath, 1)
})
执行infile_read = read.xlsx(infile$datapath, 1)
时,您正在将文件读入infile_read
,但之后您实际上并没有将其返回。 Reactives工作只是看看任何R函数。试试这个:
f <- function() x <- 10
f()
您应该看到f()
没有返回任何内容。它所做的一切就是让任务无处可去。要实际返回'hello'
,您可以执行以下操作:
f <- function() {
x <- 'hello'
x
}
或者只是:
f <- function() 'hello'