RenderDataTable R mengkilap dengan tabel nol

Sep 08 2020

Apa cara terbaik untuk hanya membuat tabel data menjadi mengkilap jika data ada? Sekarang, saya mendapatkan kesalahan berikut karena saya memberi tahu shiny untuk membuat tabel data, bahkan ketika itu adalah NULL.

    Warning in file(file, "rt") :
    cannot open file '\': No such file or directory
    Warning: Error in file: cannot open the connection

Kode saya dibagi seperti ini, di mana saya membaca data setelah pengguna memilih file csv. Setelah pengguna memilih file csv, kesalahan akan hilang dan semuanya berfungsi dengan baik. Bagaimana cara memberitahu Shiny untuk tidak menampilkan tabel data hingga file yang valid dipilih?

filedata <- reactive({
  if (is.null(input$file_selector)){ # User has not uploaded a file yet return(NULL) } else { read.csv(paste0(parseDirPath(c(home = 'C:\\Users\\Ruben'), file_dir()),'\\',input$file_selector),skip=1)}
})

output$filetable <- renderDataTable({
  filedata()
})

Saya sudah mencoba meletakkan output $ filetable <- .... kode setelah baris read.csv ... di file <- ... fungsi, tapi itu juga tidak berhasil. Apa lagi yang harus saya lakukan di sini?

Jawaban

1 Gourab Sep 08 2020 at 09:09

Anda dapat menggunakan fungsi req (), ini akan memeriksa apakah file file tersebut ada atau tidak kemudian akan masuk ke kode prosedur

filedata <- reactive({
  file <-input$file_selector
  req(file)
  read.csv(paste0(parseDirPath(c(home = 'C:\\Users\\Ruben'), file_dir()),'\\',file),skip=1)}
})
1 YBS Sep 08 2020 at 08:55

Silakan gunakan req(), seperti yang ditunjukkan di bawah ini

filedata <- reactive({
  req(input$file_selector) read.csv(paste0(parseDirPath(c(home = 'C:\\Users\\Ruben'), file_dir()),'\\',input$file_selector),skip=1)
})