J'ai un tas de fichiers .csv.bz2
, Que je dois télécharger, extraire et lire dans R. J'ai téléchargé le fichier et je veux l'extraire dans le répertoire de travail actuel, puis le lire. unz(filename,filename.csv)
mais cela ne semble pas fonctionner. Comment puis je faire ça?
J'ai entendu quelque part que les fichiers bz peuvent être lus directement sans décompresser. Comment puis je faire ça?
Vous pouvez utiliser l'une de ces deux commandes:
read.csv()
commande: avec cette commande, vous pouvez fournir directement votre nom de fichier compressé contenant le fichier csv.
read.csv("file.csv.bz2")
Commande read.table()
: Cette commande est une version générique de la commande read.csv()
. Vous pouvez définir des délimiteurs et d'autres options que read.csv()
définit automatiquement. Vous n'avez pas besoin de décompresser le fichier séparément. Cette commande le fait automatiquement pour vous.
read.csv("file.csv.bz2", header = TRUE, sep = ",", quote = "\"",...)
Comme ça:
readcsvbz2file <- read.csv(bzfile("file.csv.bz2"))
Sur les systèmes Linux , vous pouvez utiliser le super rapide fread
require(data.table)
fread(sprintf("bzcat %s | tr -d '\\000'", "file.csv.bz2"))
Référence: https://Gist.github.com/wush978/93c0f96b68f529678e2d
Fondamentalement, vous devez taper:
library(R.utils)
bunzip2("dataset.csv.bz2", "dataset.csv", remove = FALSE, skip = TRUE)
dataset <- read.csv("dataset.csv")
Voir la documentation ici: bunzip2 {R.utils} .
Selon read.table description, on peut lire n fichier compressé directement.
read.table("file.csv.bz2")