2017-05-29 2 views
0

Meine Frage stellen ist:Wie Linux-Terminal-Code von R Skript

Wie kann ich einen Linux Terminal innerhalb eines R Skript nennen?

Ich weiß, es kann eine dumme Frage sein ... mein R-Code ist hier:

download.file('https://some.dir, 
       destfile = '/home/myfile.grb2',method='auto',quiet = FALSE, 
       mode="wb", cacheOK = TRUE) 

nach dem Download, ich hatte diese Datei vom Terminal mit einem Code zu konvertieren ... aber ich brauche diese automatisch sein. Der Konverter Code ist dies:

source activate ncl_stable 
cd /home 
ncl_convert2nc myfile.grb2 

Googeln ich sah, dass Linux Terminal verwendet C++. Ich weiß, dass es ein Paket zum Ausführen von C++ - Codes in R, Rcpp gibt, aber es funktioniert wie das Linux-Terminal?

+1

Sie können die Funktion ['system'] (https://stat.ethz.ch/R-manual/R-devel/library/base/html/system.html) verwenden –

Antwort

1

Dies wird der Trick:

system(paste0("source activate ncl_stable;cd /home;ncl_convert2nc myfile.grb2")) 

können Sie weitere Informationen here oder here finden.

+0

Wie ist' paste0' hier notwendig? –

+0

Gleiche Notwendigkeit wie Ihr Kommentar. – maRtin

+0

Danke für deine Antwort. In 'Quelle aktivieren ncl_stable' es ' sh gaves: 2: Quelle: nicht found' Dann führt er den Rest des Codes, sondern ein Fehler auftritt: 'fatal: NclGRIB2: Ungültige Produktdefinition Template.' ' Segmentation Fehler (Core Dumped) ' Wenn ich diesen Code auf Linux Bash ausführen, gab es eine Liste von noch nicht anerkannten Formaten wie diese ' FEHLER 4: /vsimem/work.jpc nicht als ein unterstütztes Dateiformat erkannt.' 'dec_jpeg2000 : JPEG2000 Bild kann nicht innerhalb der GRIB Datei geöffnet werden. Aber das Skript läuft und konvertiert die Datei, in R nicht. – Forever

Verwandte Themen