MulaiMulai sekarang secara gratis

Unggah berkas teks (server)

Setelah pengguna memilih sebuah berkas, berkas tersebut akan diunggah ke komputer yang menjalankan aplikasi Shiny, dan menjadi tersedia di server.

Jika ID input dari file input adalah "myfile", Anda mungkin menduga input$myfile memberi akses langsung ke berkas yang diunggah, namun file input tidak bekerja seperti itu. input$myfile akan mengembalikan sebuah data.frame yang memuat beberapa metadata tentang berkas yang dipilih, dengan bagian terpenting adalah datapath. Dengan asumsi ID file input adalah "myfile", input$myfile$datapath akan berisi path lokasi berkas tersebut.

Setelah memperoleh path berkas yang diunggah (misalnya C:\Users\Dean\AppData\Local\Temp\path\to\file.txt), path ini dapat digunakan untuk membaca berkas sesuai kebutuhan Anda. Anda dapat menggunakan read.csv() jika berkas yang diunggah adalah berkas CSV, atau readLines() jika Anda hanya ingin membaca seluruh baris dalam berkas, atau fungsi lain mana pun yang menerima path berkas.

Latihan ini adalah bagian dari kursus

Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Lihat Kursus

Petunjuk latihan

Tugas Anda adalah menggunakan teks dari berkas yang diunggah sebagai sumber data untuk word cloud. Secara khusus:

  • Definisikan variabel reaktif bernama input_file yang akan menampung teks dari berkas yang diunggah (baris 19).
    • Dengan menggunakan path berkas yang diunggah, baca teks dalam berkas tersebut dengan fungsi readLines() (baris 24).
  • Gunakan variabel reaktif input_file() sebagai parameter data pada fungsi word cloud (baris 29).

Untuk menguji unggah berkas, Anda dapat membuat berkas teks apa pun di komputer Anda dan mengunggahnya ke aplikasi. Alternatifnya, Anda dapat menggunakan berkas ini (simpan sebagai berkas teks di komputer Anda) untuk menguji fungsi word cloud dengan teks dari pidato I Have a Dream karya Martin Luther King Jr.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

ui <- fluidPage(
  h1("Word Cloud"),
  sidebarLayout(
    sidebarPanel(
      textAreaInput("text", "Enter text", rows = 7),
      fileInput("file", "Select a file"),
      numericInput("num", "Maximum number of words",
                   value = 100, min = 5),
      colourInput("col", "Background color", value = "white")
    ),
    mainPanel(
      wordcloud2Output("cloud")
    )
  )
)

server <- function(input, output) {
  # Define a reactive variable named `input_file`
  input_file <- ___({
    if (is.null(input$file)) {
      return("")
    }
    # Read the text in the uploaded file
    readLines(input$___$datapath)
  })

  output$cloud <- renderWordcloud2({
    # Use the reactive variable as the word cloud data source
    create_wordcloud(data = ___(), num_words = input$num,
                     background = input$col)
  })
}

shinyApp(ui = ui, server = server)
Edit dan Jalankan Kode