2013-09-24 10 views
7

Potrzebuję przeczytać wiele skompresowanych plików o różnych formatach kompresji. Nie chcę ręcznie dekompresować wszystkich plików. Chciałbym, żeby R obsługiwał dekompresję i czytanie niezależnie od formatu kompresji. To tutaj utknąłem.R: Ogólna funkcja dekompresowania plików

Mogę skonstruować funkcję z obudową przełącznika w rodzaju struktury dla zip - unzip, gz - gzfile, itp., Ale chciałbym się dowiedzieć, czy istnieje już jakaś funkcja, która potrafi dekompresować pliki niezależnie od formatu kompresji.

Wszelkie sugestie są mile widziane. Wielkie dzięki!

PS: Wiem, że read.table może odczytywać (niektóre, jeśli nie wszystkie) skompresowane pliki. Jednakże, byłem inching w kierunku data.table::fread (ponieważ jest znacznie szybszy), i który wydaje się nie być w stanie odczytać skompresowanych plików (http://r.789695.n4.nabble.com/fread-on-gzipped-files-td4663116.html - jeszcze?). Wolałbym czasowo dekompresować i używać fread zamiast używania read.table.

+1

Whaaat !? Jeden downvote? To moje pierwsze pytanie na SO. Jeśli uważasz, że to zasługuje na zgubę, daj mi znać, dlaczego tak uważasz, przynajmniej nauczę się w ten sposób. Dzięki. – TheComeOnMan

Odpowiedz

1

Wtedy oto upvote :-)

Btw ja nie sądzę, że istnieje ogólna „dekompresji” funkcja, która czyni magię dla ciebie (jak w każdym z języków shell). Opcje mogą być po prostu zbyt szerokie - ale podejrzewam, że pokrywasz 80% przypadków za pomocą zip/tar/rar.

Wystarczy napisać prosty uncompress <- function(type = c("zip", "tgz", "tar", "arj :-)))")) {...}, który był pierwotnym zamiarem.