在 Windows 和 Mac 上交替使用 lubridate 包

Using the lubridate package on Windows and Mac interchangeably

下面的问题当然不仅仅适用于 lubridate 包,也许这个问题已经在别处讨论过了。不幸的是,我不知道如何以更通用的方式提出我的问题。因此这里以 lubridate 为例:

我在 Excel 中有一个数据库,其中包含以下格式的荷兰语日期:

dd/month/yyyy (e.g. 15 Maart 2017)

现在我可以使用 lubridate 中的 dmy() 命令并在 Windows 上指定 locale = 'Dutch'。在需要指定 locale = 'nl_NL' 的 mac 上不接收错误消息。

因为我在两个系统(Windows 和 mac)上交替工作,所以我很想知道是否有办法避免手动更改此代码。我在想 trytryCatch。我还可以使用 if 语句并在前面的行中指定我是使用 Windows 还是 mac。但后者还需要用户手动输入,我想避免这种情况。

非常感谢您的帮助!

你提到:

But the latter would also require a manual entry from the user

这不一定正确,例如您可以执行以下操作:

if(grepl("windows",Sys.info()[['sysname']],ignore.case = T))
{
  my_locale='Dutch'
} else
{
  my_locale='nl_NL'
}

然后指定:

locale = my_locale

您的代码现在应该可以在 Windows 和 Mac 上运行。但是,当您切换到 Linux 时,这可能会失败。所以我想知道是否有更好的解决方案..总之,希望对您有所帮助!