2017-05-29 118 views
0

我的问题是:如何与R脚本中调用Linux终端代码

我怎么能说一个Linux终端一个[R脚本里面?

我知道这可能是一个愚蠢的问题......我的R代码里面是在这里:

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

下载后,我不得不使用从终端代码文件转换...但我需要这个是自动的。该转换器的代码是这样的:

source activate ncl_stable 
cd /home 
ncl_convert2nc myfile.grb2 

谷歌搜索我看到Linux终端使用C++。我知道有一个软件包可以运行C++代码到R,Rcpp,但它的工作方式与linux终端类似吗?

+1

你可以使用['system'](https://stat.ethz.ch/R-manual/R-devel/library/base/html/system.html)功能 –

回答

1

这将这样的伎俩:

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

你可以找到更多信息herehere

+0

这里'paste0'是如何需要的? –

+0

与您的评论相同的必要性。 – maRtin

+0

感谢您的回答。在 '源激活ncl_stable' 它gaves 'SH:2:源:不found' 然后,它执行该代码的其余部分,但出现了一个错误: '致命:NclGRIB2:无效产品定义Template.' '分割错误(核心转储)' 当我在Linux Bash上执行这段代码时,它给出了一个如此的ERROR 4:/vsimem/work.jpc未被识别为支持的文件格式的列表或错误识别格式。' 'dec_jpeg2000 :无法在GRIB文件内打开JPEG2000图像。' 但是脚本运行并转换文件,在R中没有。 – Forever