在 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)上交替工作,所以我很想知道是否有办法避免手动更改此代码。我在想 try
或 tryCatch
。我还可以使用 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 时,这可能会失败。所以我想知道是否有更好的解决方案..总之,希望对您有所帮助!
下面的问题当然不仅仅适用于 lubridate
包,也许这个问题已经在别处讨论过了。不幸的是,我不知道如何以更通用的方式提出我的问题。因此这里以 lubridate
为例:
我在 Excel 中有一个数据库,其中包含以下格式的荷兰语日期:
dd/month/yyyy (e.g. 15 Maart 2017)
现在我可以使用 lubridate
中的 dmy()
命令并在 Windows 上指定 locale = 'Dutch'
。在需要指定 locale = 'nl_NL'
的 mac 上不接收错误消息。
因为我在两个系统(Windows 和 mac)上交替工作,所以我很想知道是否有办法避免手动更改此代码。我在想 try
或 tryCatch
。我还可以使用 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 时,这可能会失败。所以我想知道是否有更好的解决方案..总之,希望对您有所帮助!