在Shiny R App中使用read.xlsx

我正在尝试加载一个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) }) 

我没有testing过这个,但是看起来你并没有从dataset()返回任何东西。 将function更改为:

 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的工作只是看看任何Rfunction。 尝试运行这个:

 f <- function() x <- 10 f() 

你应该看到f()不返回任何东西。 它所做的只是做一个无处可去的任务。 要实际返回'hello'你可以这样做:

 f <- function() { x <- 'hello' x } 

要不就:

 f <- function() 'hello' 
    Interesting Posts