शुरू करेंमुफ़्त में शुरू करें

टेक्स्ट फ़ाइल अपलोड करें (server)

जब उपयोगकर्ता कोई फ़ाइल चुनता है, तो वह फ़ाइल उस कंप्यूटर पर अपलोड हो जाती है जो Shiny ऐप चलाता है, और सर्वर में उपलब्ध हो जाती है.

यदि किसी फ़ाइल इनपुट का इनपुट ID "myfile" है, तो आप सोच सकते हैं कि input$myfile अपलोड हुई फ़ाइल तक सीधा पहुँच देगा, लेकिन फ़ाइल इनपुट ऐसे काम नहीं करता. input$myfile एक data.frame लौटाएगा जिसमें चुनी गई फ़ाइल के बारे में कुछ मेटाडेटा होते हैं, जिनमें से सबसे महत्वपूर्ण है datapath. मान लीजिए फ़ाइल इनपुट की ID "myfile" है, तो input$myfile$datapath वह पाथ होगा जहाँ फ़ाइल स्थित है.

अपलोड हुई फ़ाइल का पाथ मिलने के बाद (उदाहरण के लिए C:\Users\Dean\AppData\Local\Temp\path\to\file.txt), आप इस पाथ का उपयोग अपनी ज़रूरत के अनुसार फ़ाइल पढ़ने में कर सकते हैं. अगर अपलोड की गई फ़ाइल CSV है तो आप read.csv() का उपयोग कर सकते हैं, या अगर आप फ़ाइल की सभी पंक्तियाँ पढ़ना चाहते हैं तो readLines() का, या फिर कोई भी ऐसा फंक्शन जो फ़ाइल पाथ स्वीकार करता हो.

यह अभ्यास पाठ्यक्रम का हिस्सा है

केस स्टडीज़: R में Shiny के साथ वेब एप्लिकेशन बनाना

पाठ्यक्रम देखें

अभ्यास निर्देश

आपका काम अपलोड हुई फ़ाइल के टेक्स्ट को word cloud के लिए डेटा स्रोत के रूप में उपयोग करना है. विशेष रूप से:

  • एक reactive वैरिएबल input_file नाम से परिभाषित करें जो अपलोड हुई फ़ाइल का टेक्स्ट रखेगा (पंक्ति 19).
    • अपलोड हुई फ़ाइल के पाथ का उपयोग करके, readLines() फंक्शन से उस फ़ाइल का टेक्स्ट पढ़ें (पंक्ति 24).
  • word cloud फंक्शन के data पैरामीटर के रूप में input_file() reactive वैरिएबल का उपयोग करें (पंक्ति 29).

फ़ाइल अपलोड को टेस्ट करने के लिए, आप अपने कंप्यूटर पर कोई भी टेक्स्ट फ़ाइल बना कर ऐप में अपलोड कर सकते हैं. वैकल्पिक रूप से, आप यह फ़ाइल भी उपयोग कर सकते हैं (इसे अपने कंप्यूटर पर टेक्स्ट फ़ाइल के रूप में सेव करें) ताकि Martin Luther King Jr के भाषण I Have a Dream के टेक्स्ट के साथ word cloud फंक्शन का परीक्षण कर सकें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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)
कोड संपादित करें और चलाएँ