R的功能是否与系统有关?

Dav*_*uer 6 interop operating-system r

我的同事希望确保我们在R中的工作与平台无关,特别是代码将在Linux,Mac和Windows上运行,并且在一个系统上创建的文件将在其他系统上运行.

由于此问题已经出现在我的小组中,我希望得到一个通用答案,这将使我更容易自信地向我的合作者保证不存在问题.例如,除了"因为(主题专家)在SO上说"之外,它将有助于提供参考.

  1. 通常,有没有办法知道R的任何特性是否是特定于平台的(我可以假设这将在函数的帮助中声明)吗?
  2. 是否有我相信平台无关的软件包或功能?
  3. 是否有类型的软件包或功能我应该警惕?

我之前曾问过两个关于R创建的文件的跨平台可读性的问题:与HDF5或netCDF相比,使用.Rdata文件有哪些缺点?为R对象使用`dump`可读跨平台甩?

Dir*_*tel 4

除了卡尔的回答之外,确保您的工作独立于平台的明显方法是在所有平台上进行测试

这正是 CRAN 对其 3800 多个软件包所做的事情,您可以在此处访问日志。

简而言之,R 确实努力做到平台无关,并且大部分都取得了成功。要对代码执行此操作,您需要避免使用引入依赖项的 API 或工具。查看诸如此类的抽象system.file(package="boot")以及它们使用的函数——您可以轻松地抽象文件系统“根”,并且分隔符已经得到处理。