gpt4 book ai didi

r - 是否可以在命令行中将代码通过管道传递给 R 或 R 脚本?

转载 作者:行者123 更新时间:2023-12-05 01:18:54 31 4
gpt4 key购买 nike

例如,test.R 是一个单行文件:

$ cat test.R  
# print('Hello, world!')

我们可以通过Rscript test.RR CMD BATCH test.R 来运行这个文件。但是,是否可以指示 R 执行通过管道传输给它的代码,例如 cat test.R | Rscriptcat test.R | R CMD BATCH(两者都不起作用)?

最佳答案

Rscript 不会听标准输入:

$ echo "2 + 2" | Rscript

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
$

但 littler 一直做得很好,因为它是为此(以及更多)而构建的:

$ echo "2 + 2" | r -p                # -p switch needed for print
[1] 4
$ echo "print(2 + 2)" | r
[1] 4
$

请注意,默认情况下操作是“静默的”,显式 print() 语句或 -p 标志是您的 friend 。

为了完整起见,R 现在也可以做到,但我忘了它是什么时候添加的:

$ echo "2 + 2" | R --slave
[1] 4
$

我有一个 older blog post comparing the start-up speeds ,所以我在这些事情上的钱仍然很少——而且我有很多脚本和 cron 作业在使用它,因为它“正常工作”。

关于r - 是否可以在命令行中将代码通过管道传递给 R 或 R 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42929805/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com