如何在R中的年,月,日和日期之间转换?
我知道可以通过字符串来做到这一点,但我宁愿避免转换为字符串,部分原因可能是性能受到影响?部分原因是我担心区域化问题,其中一些世界使用“年-月-日” ”,有些使用“年-日-月”。
看起来 ISODate 提供了方向 year,month,day -> DateTime ,尽管它确实首先将数字转换为字符串,所以如果有一种方法不通过字符串,那么我更喜欢。
从日期时间到数值,我找不到任何相反的东西?我宁愿不需要使用 strsplit 或类似的东西。
编辑:为了清楚起见,我所拥有的是一个数据框,它看起来像:
year month day hour somevalue
2004 1 1 1 1515353
2004 1 1 2 3513535
....
我希望能够自由转换成这种格式:
time(hour units) somevalue
1 1515353
2 3513535
....
...并且还能够再次返回。
编辑:为了消除对“时间”(小时单位)含义的一些混淆,最终我所做的是,并使用如何在 R 中找到两个日期之间的差异的信息?:
前进方向:
lh$time <- as.numeric( difftime(ISOdate(lh$year,lh$month,lh$day,lh$hour), ISOdate(2004,1,1,0), units="hours"))
lh$year <- NULL; lh$month <- NULL; lh$day <- NULL; lh$hour <- NULL
向后方向:
...好吧,我还没有倒退,但我想像:
- 从 lh$time 创建 difftime 对象(不知何故...)
- 将 ISOdate(2004,1,1,0) 添加到 difftime 对象
- 使用以下解决方案之一来获取年、月、日、小时
我想在未来,我可以问我要解决的确切问题,但我试图将我的具体问题分解为通用的可重用问题,但也许这是一个错误?