1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nghiên cứu tình huống: Xây dựng ứng dụng web với Shiny trong R

Connected

Bài tập

Tải lên tệp văn bản (server)

Sau khi người dùng chọn một tệp, tệp đó sẽ được tải lên máy tính đang chạy ứng dụng Shiny và trở nên khả dụng trong server.

Nếu ID của input tệp là "myfile", bạn có thể nghĩ input$myfile sẽ cho phép truy cập tệp đã tải lên, nhưng file input không hoạt động như vậy. input$myfile sẽ trả về một data.frame chứa một vài siêu dữ liệu về tệp đã chọn, trong đó phần chính bạn cần quan tâm là datapath. Giả sử ID của file input là "myfile", thì input$myfile$datapath sẽ là đường dẫn nơi tệp được lưu.

Sau khi lấy được đường dẫn của tệp đã tải lên (ví dụ C:\Users\Dean\AppData\Local\Temp\path\to\file.txt), bạn có thể dùng đường dẫn này để đọc tệp theo cách bạn cần. Bạn có thể dùng read.csv() nếu tệp tải lên là tệp CSV, hoặc readLines() nếu bạn chỉ muốn đọc toàn bộ các dòng trong tệp, hoặc bất kỳ hàm nào khác chấp nhận đường dẫn tệp.

Hướng dẫn

100 XP

Nhiệm vụ của bạn là dùng văn bản từ tệp đã tải lên làm nguồn dữ liệu cho word cloud. Cụ thể:

  • Định nghĩa một biến reactive tên input_file để chứa văn bản từ tệp đã tải lên (dòng 19).
    • Sử dụng đường dẫn của tệp đã tải lên, đọc văn bản trong tệp bằng hàm readLines() (dòng 24).
  • Dùng biến reactive input_file() làm tham số data của hàm tạo word cloud (dòng 29).

Để kiểm tra việc tải tệp, bạn có thể tạo bất kỳ tệp văn bản nào trên máy và tải lên ứng dụng. Hoặc, bạn có thể dùng tệp này (lưu lại dưới dạng tệp văn bản trên máy) để kiểm thử chức năng word cloud với văn bản từ bài diễn văn I Have a Dream của Martin Luther King Jr.