Run R command from command line Run R command from command line r r

Run R command from command line


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 metacharactersExpressions (one or more '-e <expr>') may be used *instead* of 'file'See also  ?Rscript  from within R


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


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.