2017-07-29 89 views
0

我正在嘗試一個非常基本的閃亮應用程序,並且出現錯誤! 我有一個簡單的數據集txt文件10x10。 我可以R中輕鬆閱讀它,函數read.table通過命令:閱讀閃亮的應用程序中的文件

tb=read.table("Data.txt",sep="") 

的出落得是:

  V1  V2  V3  V4  V5  V6  V7  V8 
1 -1.44736 -0.9583 -1.50346 0.12537 0.06332 1.81820 1.2510 0.5793 
2 -0.08243 0.6896 0.91643 1.22713 1.30572 0.67108 -0.2496 0.2021 
3 1.03049 1.3470 0.01859 -0.33945 -0.77241 -0.27944 0.2572 0.3229 
4 0.96038 0.6042 1.26491 0.07691 0.84525 -0.97459 0.4324 0.8489 
5 0.95835 -1.8923 -0.43028 0.57660 0.55485 -0.08226 0.4904 -0.2361 
6 1.17600 -0.5480 -0.72248 -0.61439 -1.21602 0.70752 0.5765 1.1586 
7 0.72957 -1.4862 2.33438 -1.09799 0.60963 0.26388 1.7796 1.3703 
8 0.59776 0.9756 -1.47961 0.19636 -0.79520 0.02594 0.1004 0.1278 
9 1.10021 -1.0643 0.12381 -0.96318 -0.52618 -0.56597 -0.6296 -0.5527 
10 1.03680 -0.6139 0.30787 1.90541 -0.64111 1.28889 1.2670 0.9928 
     V9  V10 
1 -1.20396 0.225245 
2 -1.47926 0.881382 
3 0.73340 -0.344852 
4 -0.56226 -1.130889 
5 0.95693 0.213951 
6 -0.06354 1.260926 
7 0.45870 0.894200 
8 0.82496 -1.014504 
9 0.19422 0.008162 
10 0.29386 -0.318137 

但是當我嘗試做同樣的閃亮:

library(shiny) 

ui <- fluidPage(
    fileInput("file","import file"), 
    tableOutput("tb") 
) 

server <- function(input,output){ 
output$tb <-renderTable({ 
     data <- input$file 
     if(is.null(data)){return()} 
     read.table(data$path,sep="") 
}) 
} 
shinyApp(ui=ui, server=server) 

瀏覽數據後出現以下錯誤:

'file' must be a character string or connection 

我在我的閃亮應用程序中錯過了什麼?

+0

你希望用戶上傳的文件,或者是否應該在應用程序啓動進口? – Florian

+0

@Florian用戶上傳文件 –

回答

3

只需將data$path替換爲data$datapath即可。使用fileInput時,Shiny使用datapath訪問實際的文件地址。

爲了將來的參考,我發現調試閃亮輸入的簡單方法是assign(..., envir = globalenv())將輸入保存到全局環境以供在應用程序之外進行檢查。

您的示例應用程序的功能與單變化:

ui <- fluidPage(
    fileInput("file","import file"), 
    tableOutput("tb") 
) 

server <- function(input,output){ 
    output$tb <-renderTable({ 
    data <- input$file 
    # assign('datainput', data, envir = globalenv()) ## writes data to global environment as "datainput" for inspection. 
    if(is.null(data)){return()} 
    read.table(data$datapath,sep="") 
    }) 
} 
shinyApp(ui=ui, server=server) 
相關問題