2009-07-29 67 views
5

Tôi có tệp Excel với một tập dữ liệu lớn. Biểu đồ tích hợp sẵn trong Excel là không phải đủ để phân tích những dữ liệu này, vì vậy tôi đang nghĩ đến việc sử dụng một số công cụ như octave hoặc R.Tải dữ liệu từ tệp Excel vào R hoặc Octave

Tôi đã suy nghĩ về một số phương pháp để tải tệp Excel trực tiếp vào quãng tám hoặc R. Tôi đã tìm kiếm trên web và thấy rằng nhiều người đã sử dụng thành công bằng cách xuất dữ liệu từ Excel vào tệp CSV.

Câu hỏi: Có cách nào trực tiếp để tải tệp Excel trong R hoặc Octave không?

Trả lời

4

Vâng, here's how:

người dùng Windows có thể sử dụng odbcConnectExcel trong gói RODBC. Điều này có thể chọn hàng và cột từ bất kỳ trang tính nào trong tệp bảng tính Excel (ít nhất là từ Excel 97–2003, tùy thuộc vào trình điều khiển ODBC của bạn: bằng cách gọi odbcConnect trực tiếp phiên bản quay lại Excel 3.0 có thể đọc). Phiên bản odbcConnectExcel2007 sẽ đọc các định dạng Excel 2007 cũng như các định dạng cũ hơn (miễn là các trình điều khiển được cài đặt: xem RODBC).

3

Tùy chọn khác (và thậm chí di động) là read.xls trong gói gdata. Nó có sẵn trên nền tảng vì nó dựa trên mã Perl cơ bản để phân tích cú pháp, đọc, ... dữ liệu từ tệp xls thành tệp csv sau đó được đọc. Tất cả các gói Perl được yêu cầu đều được cung cấp bởi gdata.

Gói Octave có thể dễ dàng được tạo bằng cách sử dụng cùng một thủ thuật.

3

Câu hỏi của bạn đã được trả lời. Trong trường hợp điều này giúp ích cho một số trường hợp tương lai, một nguồn tài nguyên thực sự hữu ích cho các loại câu hỏi này là R Data Import/Export document bao gồm rất nhiều API, gói, mẹo hữu ích, v.v ... để truy cập dữ liệu từ một số cơ sở dữ liệu và định dạng tệp phổ biến.

Ví dụ: có Excel section, bao gồm rất nhiều mặt bằng trong các câu trả lời đã được cung cấp.

Một mẹo hữu ích khác là thử hệ thống tìm kiếm trợ giúp R. Ví dụ, hãy thử một trong những điều sau đây từ dấu nhắc R:

> ??xls 
> ??excel 

EDIT: BTW, ??xls là viết tắt của help.search("xls").

+0

+1, nhờ chỉ cho tôi đến tài liệu này, thực tế vì lý do không rõ, tôi đã nghiêng nhiều hơn về phía quãng tám, và không tập trung vào R. Nhưng, bây giờ tôi sẽ bắt đầu bằng R ;-) ... – Alphaneo

1

Cách dễ nhất là để dữ liệu của bạn ở dạng tệp CSV và sau đó sử dụng read.csv() để đọc dữ liệu. Lưu ý rằng khi bạn đọc dữ liệu, R sẽ đọc các chuỗi ký tự và chuyển chúng thành các thừa số. Điều này có thể trở thành vấn đề khi bạn cố gắng tập hợp con, dữ liệu, v.v.

Hoặc, nếu bạn muốn đọc nó dưới dạng tệp Excel gốc, thì bạn có thể sử dụng gói RODBC.

library('RODBC') 
yourData <- sqlFetch(odbcConnectExcel("yourData.xls"), 
    sqtable = "nameOfSheet", 
    na.strings = "NA", 
    as.is = TRUE)      
odbcCloseAll() 
1

Một giải pháp đơn giản hơn cho Windows là sử dụng gói xlsReadWrite. Không cần Perl, chỉ cần cài đặt như một gói R và bạn có thể đọc và ghi các tệp Excel vào nội dung trái tim của bạn.

+0

Tuy nhiên, nó không phải là nguồn mở cũng không phải di động. –

+0

+1 @Rob, cảm ơn. – Alphaneo

1

Bây giờ chúng tôi có thể sử dụng read.csv hoặc read.table.

Ví dụ

df = read.csv("~/data/demo.csv",header = TRUE)