【发布时间】:2015-12-20 23:07:53
【问题描述】:
使用 R shiny,我正在开发一个简单的应用程序,允许用户从文件中输入数据。使用 csv 或 txt 文件一切正常,但我无法加载 R 数据帧。
## SERVER.R
shinyServer(function(input, output) {
infile <- reactive({
infile <- input$datafile
if (is.null(infile)) {
# User has not uploaded a file yet
return(NULL)
}
infile<load(input$datafile$datapath)
})
myData <- reactive({
df<-infile()
if (is.null(df)) return(NULL)
})
output$value1 <- renderPrint({
names(iris)
})
output$value2 <- renderPrint({
names(myData())
})
load("iris.Rdata") ## data loaded for testing
})
## UI.R
shinyUI(fluidPage(
fileInput("datafile", label = h3("File input")),
fluidRow(column(4, verbatimTextOutput("value1"))),
fluidRow(column(4, verbatimTextOutput("value2")))
))
当我运行这个应用程序时,我可以看到仅为测试加载的 iris 数据集的名称,但加载文件的名称(应呈现为 value2)仅显示“NULL”
有什么帮助吗??提前致谢!
【问题讨论】:
-
“当我运行这个应用程序时,我可以看到仅为测试加载的 iris 数据集的名称”你为什么这么说?除了 load("iris.Rdata") 应该在 shinyServer(function(input, output) {} 之外
-
为了测试应用程序是否运行良好,除了文件输入负载之外,我还加载了 IRIS 数据框,并显示了“名称”。我对文件输入做了同样的事情,但没有奏效。可能不是常规方式,但我不是程序员,所以这是我发现对自己有用的方式