Import Excel files from the web – in R

Spread the love

Bài này sẽ trình bày 2 cách để import file excel từ 1 url có sẵn.

Cách 1 là dùng thư viện gdata, hai là dùng thư viện readxl.

Để dùng được thư viện thì trước tiên cần load thư viện:

library(gdata)

library(readxl)

Giả sử có sẵn một url của file excel, và ta gán đường dẫn vào biến url_file:

url_file <- "http://s3.amazonaws.com/assets.datacamp.com/production/course_1478/datasets/latitude.xls"

※link lấy từ datacamp

Với gdata thì có thể import trực tiếp qua câu lệnh read.xls():

xl_gdata <- read.xls(url_file)

Và xong, có thể check luôn nội dung của file excel bằng cách gọi biến xl_gdata

xl_gdata

Kết quả:

 country                 X1700
1 Afghanistan           34.5650000
2 Akrotiri and Dhekelia 34.6166667
3 Albania               41.3120000
4 Algeria               36.7200000
5 American Samoa        -14.3070000

Với readxl thì trước tiên cần download file excel về local bằng câu lệnh download.file() trước:

download.file(url_xls, "local_latitude.xls")

※ Chú ý là ở đây tên file download đã được đổi từ latitude.xls thành local_latitude.xls. Có thể đổi tên file download về tuỳ ý bằng cách đặt tên file cho biến thứ hai trong dấu ngoặc của download.file()

Sau đó mới có thể thao tác import với file đã download về local bằng lệnh read_excel():

xl_readxl <- read_excel("local_latitude.xls")

Đọc nội dung biến xl_readxl ra thì có thể thấy nội dung xl_readxl giống y hệt của biến xl_gdata:

xl_readxl

Kết quả:

 country                 X1700
1 Afghanistan           34.5650000
2 Akrotiri and Dhekelia 34.6166667
3 Albania               41.3120000
4 Algeria               36.7200000
5 American Samoa        -14.3070000

Tóm tắt:

・ gdata ưu hơn là có  thể thao tác trực tiếp với file trên internet, trong khi readxl thì chỉ thao tác với file trên local.

・R dùng rất tiện, có thể tham khảo cách dùng các lệnh, hay thư viện bằng dấu ?câu_lệnh hoặc help(câu_lệnh). Ví dụ:

?read.xls

help(download.file)

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *