我经常使用 RODBC 连接 Microsoft Access 数据库,并且只能在 32 位 R 中执行此操作,因为我的 Windows 7 PC 上加载了 32 位 MS Office。
从 32 位 R 中的 MS 访问数据库中提取我的数据后,我通常想在 64 位 R 中操作和分析它。此外,我正在尝试编写其他人可能需要使用的脚本,我想通过在 RStudio 中调用 32 位 R 来简化事情(我已经设置为使用 64 位 R,版本 3.1.2)。
我发现这篇文章似乎正是我想要的,并尝试运行建议的代码。但是,这给了我一个致命的错误,表明我的工作目录不存在,即使我一直在使用和不使用 RStudio 的 64 位 R 和 32 位 R 中从这个目录工作并且从未遇到任何问题:
> system2("C:\\Users\\Joe.Bloggs\\Documents\\R\\R-3.1.2\\bin\\i386\\Rscript.exe", normalizePath("my script.R", winslash = "\\", mustWork = TRUE), invisible=FALSE)
Fatal error: cannot open file 'H:\03.': No such file or directory
Warning message:
running command '"C:\Users\Joe.Bloggs\Documents\R\R-3.1.2\bin\i386\Rscript.exe" H:\03. B Project\my script.R' had status 2
请注意,由于我没有管理权限,因此我已在 C 盘的“Documents”文件夹中安装了 R 和 RStudio。
此外,我的 R 脚本位于网络驱动器 (H) 上。
我尝试将要运行的 R 脚本复制到我的 C 驱动器上的 32 位 R 的默认工作目录中,并在不使用 normalizePath 的情况下明确说明它的文件路径(因为我假设此命令扩展到我当前的工作目录 64-位 R),但这会产生与上述相同的错误。
此外,如果我只是尝试调用 32 位 R,我会收到警告:
> system2("C:\\Users\\Joe.Bloggs\\Documents\\R\\R-3.1.2\\bin\\i386\\Rscript.exe", invisible=FALSE)
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
Warning message:
running command '"C:\Users\Joe.Bloggs\Documents\R\R-3.1.2\bin\i386\Rscript.exe"' had status 1
任何对我做错了什么的见解将不胜感激;我尝试在两个文件路径中使用单正斜杠而不是双反斜杠,但无济于事;我仍然遇到同样的错误。
如何让 system2 找到我的 R 脚本并在 32 位 R 中运行它?
还有一个资源可以解释警告中的状态数字是什么意思?
非常感谢您的帮助。