J'ai utilisé ?unzip
dans le passé pour accéder au contenu d'un fichier compressé en utilisant R. Cette fois-ci, j'ai du mal à extraire les fichiers d'un fichier .gz qui peut être trouvé ici .
J'ai essayé ?gzfile
et ?gzcon
mais n'ont pas réussi à le faire fonctionner. Toute aide que vous pourrez apporter sera grandement appréciée.
Si vous voulez vraiment décompresser le fichier, utilisez simplement la fonction untar
qui prend en charge gzip. Par exemple.:
untar('chadwick-0.5.3.tar.gz')
Voici un exemple pratique qui peut aider à illustrer à quoi servent gzfile()
et gzcon()
foo <- data.frame(a=LETTERS[1:3], b=rnorm(3))
foo
# a b
#1 A 0.586882
#2 B 0.218608
#3 C 1.290776
write.table(foo, file="/tmp/foo.csv")
system("gzip /tmp/foo.csv") # being very explicit
Maintenant que le fichier est écrit, au lieu d'utiliser implicitement file()
, utilisez gzfile()
:
read.table(gzfile("/tmp/foo.csv.gz"))
# a b
#1 A 0.586882
#2 B 0.218608
#3 C 1.290776
Le fichier que vous pointez est une archive tar compressée, et pour autant que je sache, R lui-même n'a pas d'interface avec les archives tar. Ils sont couramment utilisés pour distribuer le code source - comme par exemple pour les packages R et les sources R.
Pour décompresser un fichier dans R, vous pouvez faire
library(R.utils)
gunzip("file.gz", remove=FALSE)
ou
gunzip("file.gz")
Mais vous obtenez ensuite le comportement par défaut (remove = TRUE) dans lequel le fichier d'entrée est supprimé après que le fichier de sortie est entièrement créé et fermé.
http://blog.revolutionanalytics.com/2009/12/r-tip-save-time-and-space-by-compressing-data-files.html
R a ajouté une décompression transparente pour certains types de fichiers compressés dans la dernière version (2.10). Si vos fichiers sont compressés avec bzip2, xvz ou gzip, ils peuvent être lus dans R comme s'il s'agissait de fichiers en texte brut. Vous devez avoir les extensions de nom de fichier appropriées.
La commande...
myData <- read.table('myFile.gz')
Les fichiers compressés #gzip ont une extension "gz"
Fonctionne comme si "monFichier.gz" était le fichier texte brut.