如何重复从命令行运行R脚本,但只在第一次加载包

时间:2016-08-28 19:49:51

标签: r

我想在每次添加新记录时从SQL Server 2014运行R脚本(在Win 7中)(以对数据执行某些分析)。我看到这可以使用xp_cmdshell命令完成,就像从命令行手动运行它一样。

我的问题(和问题)是:

  1. 我从各种网站上发现,可能最好选择使用Rscript。这必须在命令行中用作:
  2. C:\Program Files\R\R-3.2.3\bin\x64\Rscript "my_file_folder\my_file.r

    我可以将Rscript.exe复制到我的脚本所在的文件夹中,这样即使没有安装R,我也可以独立运行我的脚本吗?我需要将哪些其他文件与Rscript.exe一起复制,以便它可以独立工作?

    1. 我的脚本加载了一些包含它使用的函数的包。有没有办法以某种方式将这些包含在脚本中,以便它们不必每次都加载(到目前为止大约需要5秒,我需要这个脚本更快)?或者有没有办法只在脚本第一次运行时加载这些包?
    2. 如果我在这里描述的整体方法不是最好的方法,我愿意采取不同的方式。也许有办法以某种方式将R脚本与所有必需的依赖项(脚本需要独立运行的R软件的库和其他部分)一起打包。

      我最终需要的是一个脚本以静默方式运行,而且速度相当快,没有任何窗口或其他任何弹出窗口,每次将新记录添加到我的数据库时,都要进行分析并退出。

      提前感谢您的任何答案。

      更新: 我找到了运行R脚本的优雅解决方案。我在SQL Server中设置了一份工作,并在我的工作中使用" xp_cmdshell"将我的脚本作为参数运行到Rscript.exe,如上面第1点所述。我可以从任何存储过程开始这项工作,它的美妙之处在于存储过程不会等待脚本完成。它只是触发作业(在一个单独的线程中运行脚本)然后继续其业务。

      但第1点和第2点的问题仍然存在。

0 个答案:

没有答案