Tôi đang tìm cách tải xuống csv đã nén và tải nó dưới dạng đối tượng R mà không lưu nó trước tiên vào đĩa. Tôi có thể làm điều này với các tệp nén nhưng không thể làm cho nó hoạt động với gzfile
hoặc gzcon
.Đọc gzipped csv trực tiếp từ url trong R
Ví dụ:
grabRemote <- function() {
temp <- tempfile()
download.file("http://dumps.wikimedia.org/other/articlefeedback/aa_combined-20110321.csv.gz", temp)
aap.file <- read.csv(gzfile(temp), as.is = TRUE)
unlink(temp)
return(aap.file)
}
Đó tải một (nhỏ) gz tập tin nén chứa Wikipedia article feedback data (không quan trọng, nhưng chỉ để cho thấy nó không phải là khổng lồ hoặc bất chính).
Mã tôi đã hoạt động tốt nhưng tôi cảm thấy như tôi thiếu điều gì đó rất rõ ràng bằng cách sử dụng để tạo và hủy tệp tạm thời.
Vâng tôi gần 70% chắc chắn bạn hoặc JD đã trả lời một cái gì đó tương tự. Tôi thực sự có ý tưởng 'tempfile' từ câu trả lời trước của bạn về các thư mục nén. Nhưng tôi không thể tìm thấy một cái gì đó w/gzfile/gzcon, mà dường như cư xử khác với một số tập tin khác hoặc các chức năng liên quan đến kết nối. –
Bạn có thể chưng cất điều này không? Tôi thực sự sử dụng cùng một mẹo 'streaming' ra khỏi một tập tin gzip'ed trở lại vào đầu những năm 1990 khi không gian đĩa là scarcer và tôi giữ kết quả mô phỏng gzip'ed. Vì vậy, khả năng minh bạch nhận được chức năng "gunzip" vào một thư viện C fread là khá cũ trường học và tiêu chuẩn. –
Tôi sẽ đánh dấu đây là câu trả lời ngay bây giờ. Tôi có thể quay trở lại và cho bản thân mình một câu trả lời tốt hơn sau khi một số lừa xung quanh w/gzcon (mà có vẻ như góc hứa hẹn hơn). –