以下问题当然不仅适用于lubridate
包,也许这已在别处讨论过。不幸的是,我不知道如何以更通用的方式提出我的问题。因此,这里有lubridate
示例:
我在Excel中有一个数据库,其中包含以下列格式用荷兰语写的日期:
dd / month / yyyy(例如2017 Maart 2017)
现在我可以使用dmy()
中的lubridate
命令在Windows上指定locale = 'Dutch'
。在需要指定locale = 'nl_NL'
以不接收错误消息的mac上。
由于我可以互换地在两个系统(Windows和Mac)上工作,我很想知道是否有办法避免手动更改此代码。我在考虑try
或tryCatch
。我也可以使用if
语句并在早期行中指定我是在Windows上还是在mac上工作。但后者还需要用户手动输入,我想避免。
非常感谢你的帮助!
答案 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时,这可能会失败。所以我想知道是否有更好的解决方案..无论如何,希望这有帮助!