2014-06-10 21 views
5

Vorrei creare un file tar.gz da R. Ma la funzione tar non mi funziona. Questo è il mio codice di esempio.Come creare un file tar.gz in R?

writeLines('aaaa', 'tmp.txt') 
tar('tmp.tar.gz', 'tmp.txt', compression = 'gzip') 

Questo codice crea un tmp.tar.gz, ma tmp.txt non include nel file gz.

Ci sono errori nel mio codice?

Grazie per eventuali suggerimenti.

corro questo codice in Windows e Linux:

#Windows platform 
sessionInfo() 
R version 3.1.0 (2014-04-10) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252 
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C      
[5] LC_TIME=English_Australia.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

loaded via a namespace (and not attached): 
[1] tools_3.1.0 

#Linux platform 
sessionInfo() 
R version 3.1.0 (2014-04-10) 
Platform: x86_64-pc-linux-gnu (64-bit) 

locale: 
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C   LC_TIME=C   LC_COLLATE=C   
[5] LC_MONETARY=C  LC_MESSAGES=C  LC_PAPER=C   LC_NAME=C   
[9] LC_ADDRESS=C   LC_TELEPHONE=C  LC_MEASUREMENT=C  LC_IDENTIFICATION=C 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] weaana_0.1.0.3874 abind_1.4-0  reshape2_1.4  ncdf4cf_0.1.0.3698 ncdf4_1.10   
[6] stringr_0.6.2  My_0.1.0.4086  

loaded via a namespace (and not attached): 
[1] Rcpp_0.11.1 plyr_1.8.1 tools_3.1.0 

risposta

9

Credo che non si dispone di impostare la variabile d'ambiente "tar". L'argomento predefinito di tar() chiamato tar è impostato da una chiamata a Sys.getenv("tar"). Se è una stringa vuota, viene utilizzato l'interno di R tar (non funziona nemmeno sul mio sistema).

Quindi, si può sia Sys.setenv il "tar" variabile o fornire il nome di esterni tar comando/percorso manualmente:

tar('tmp.tar.gz', 'tmp.txt', compression = 'gzip', tar="tar") 
+1

Grazie per la risposta. Ho ottenuto la stringa vuota ("") quando si chiama Sys.getenv ("tar") sotto linux. – Bangyou

+1

Grazie per i vostri suggerimenti. ora funziona. – Bangyou

+0

Ciao, ho provato a impostare la mia variabile tar con Sys.setenv (tar = "pathToTarCmd"), sembra funzionare perché lo controllo con Sys.getenv ("tar") che restituisce una stringa non nulla ma quando chiamo comando tar mentre lo fai, non funziona, come posso farlo? – HanniBaL90

Problemi correlati