2013-09-10 35 views
2

我想加载一个excel文件并显示摘要。该文件正在加载没有任何错误,但不显示任何内容。在Shiny R App中使用read.xlsx

这里是我的代码

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) 

}) 

回答

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' 
+0

我也曾尝试以下,但没有运气'infile_read = read.xlsx(INFILE $数据通路,1) 回报( infile_read)' – BigDataScientist

+0

把'browser()'放在你读入文件的地方之后。该文件是否正在读入? – MadScone

+0

我在命令行中包含了'browser()'它显示的浏览器>,并在那里停止。没有错误,没有输出。我也尝试过'browser(text =“Done !!”)',但是“完成!!”不打印。 – BigDataScientist