在Windows和Mac上交替使用lubridate软件包

时间:2017-12-15 12:52:44

标签: r windows macos lubridate

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

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

  

dd / month / yyyy(例如2017 Maart 2017)

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

由于我可以互换地在两个系统(Windows和Mac)上工作,我很想知道是否有办法避免手动更改此代码。我在考虑trytryCatch。我也可以使用if语句并在早期行中指定我是在Windows上还是在mac上工作。但后者还需要用户手动输入,我想避免。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:3)

你提到:

  

但后者还需要用户手动输入

不一定如此,您可以执行以下操作:

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

然后指定:

locale = my_locale

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