Run R command from command line

烂漫一生 提交于 2021-01-02 05:29:35

问题


Is there a way to run an R command from the command line? Something like

$ R --run '1+1'
2

or even like

$ Rscript < '1+1'
2

回答1:


The command line option -e does exactly that.

Rscript.exe -e "1+1"

[1] 2

It is clearly explained in the help which you get if you just run RScript without parameters:

Usage: /path/to/Rscript [--options] [-e expr [-e expr2 ...] | file] [args]

--options accepted are
  --help              Print usage and exit
  --version           Print version and exit
  --verbose           Print information on progress
  --default-packages=list
                      Where 'list' is a comma-separated set
                        of package names, or 'NULL'
or options to R, in addition to --slave --no-restore, such as
  --save              Do save workspace at the end of the session
  --no-environ        Don't read the site and user environment files
  --no-site-file      Don't read the site-wide Rprofile
  --no-init-file      Don't read the user R profile
  --restore           Do restore previously saved objects at startup
  --vanilla           Combine --no-save, --no-restore, --no-site-file
                        --no-init-file and --no-environ

'file' may contain spaces but not shell metacharacters
Expressions (one or more '-e <expr>') may be used *instead* of 'file'
See also  ?Rscript  from within R



回答2:


You can do it with the R command:

$ R --slave -e '1+1'
[1] 2

From man R:

   --slave
          Make R run as quietly as possible

   -e EXPR
          Execute 'EXPR' and exit



回答3:


With littler package installed and the path of r properly configured, you can do something like this:

echo 'print(1+1)' | r  
# [1] 2

Note, r is not a typo. It is a command from littler. It also support the -e option like R and Rscript:

r -e 'print(1+1)'     
# [1] 2

It seems that it only prints when you call print/cat/... explicitly in expression.



来源:https://stackoverflow.com/questions/45809083/run-r-command-from-command-line

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!