2014-09-20 17 views
26

Tôi có bó các tập tin .csv.bz2, mà tôi phải tải xuống, trích xuất và đọc trong R. Tôi đã tải xuống tệp và muốn giải nén nó vào thư mục làm việc hiện tại, sau đó đọc nó. unz(filename,filename.csv) nhưng có vẻ như không hoạt động. Làm thế nào tôi có thể làm điều đó?Giải nén tập tin bz2 trong R

Tôi nghe ở đâu đó rằng bzfiles có thể được đọc trực tiếp mà không cần giải nén. Làm thế nào tôi có thể làm điều đó?

Trả lời

23

Bạn có thể sử dụng bất kỳ hai lệnh sau:

  1. read.csv() lệnh: với lệnh này bạn có thể trực tiếp cung cấp tên tệp nén có chứa tệp csv.

    read.csv("file.csv.bz2")

  2. read.table() lệnh: Lệnh này là phiên bản generic của read.csv() lệnh. Bạn có thể đặt các dấu phân cách và các tùy chọn khác mà read.csv() tự động đặt. Bạn không cần phải giải nén tệp một cách riêng biệt. Lệnh này tự động thực hiện cho bạn.

    read.csv("file.csv.bz2", header = TRUE, sep = ",", quote = "\"",...)

23

Như thế này:

readcsvbz2file <- read.csv(bzfile("file.csv.bz2")) 
+11

'bzfile()' là không cần thiết, 'read.csv()' có thể xử lý các tệp nén tự động. Vì vậy, nó chỉ là 'read.csv (" file.csv.bz2 ")'. [Đây là một ví dụ] (http://rpubs.com/Noseshine/77486) (phần đầu tiên "Tải dữ liệu"). –

3

Về cơ bản, bạn cần phải gõ:

library(R.utils) 
bunzip2("dataset.csv.bz2", "dataset.csv", remove = FALSE, skip = TRUE) 

dataset <- read.csv("dataset.csv") 

Xem tài liệu ở đây: bunzip2 {R.utils}.

Các vấn đề liên quan