我有一个数据集,它将日期时间编码为两个单独的变量.通常,我只是将它们粘贴在一起as.POSIXct并继续进行.但是,日期以字符串形式提供,一天中的时间为24小时 - 例如,下午12点为0.5,上午9:30为0.1458333等.
将小数天转换为时钟小时似乎并不那么棘手,但如果可能的话,我更愿意使用预先存在的函数.基础R中是否存在类似的东西?一套?
如果有任何用途,这是通过RODBC导入R的Excel(xlsx)时间字段.
编辑奇怪的是,在重新审视这个问题时,现在将时间读入POSIXct.不知道该怎么做.
POSIXct值只是格林威治标准时间1970-01-01午夜以来的秒数.(所以你需要注意你与UTC的偏差.)你可以使用日期部分并将天数乘以24*3600(as.Date(dtval)到你的时间值*24*3600.Gabor指向R News中的文章(他写的,谢谢你,Gabor.)
你没有给出一个字符串的例子.如果您将日期作为字符串获取,则as.Date(strDate)将以"YYYY-MM-DD"或"YYYY/MM/DD"格式将变量"strDate"转换为Date类.否则,格式代码位于?strptime页面上.
一旦你有一个POSIXct分类变量,你可以添加秒数.这个例子在今天2011年2月1日午夜30分钟到达(在我的时区,即UTC-5):
> as.POSIXct(as.Date("2011-02-01")) +30*60
[1] "2011-01-31 19:30:00 EST"
Run Code Online (Sandbox Code Playgroud)
这是你的时间值加到午夜我的时间:
> as.POSIXct(as.Date("2011-02-01 00:00", tzone="UTC"))+3600*5 + 3600*24*timeval
[1] "2011-02-01 03:29:59 EST"
Run Code Online (Sandbox Code Playgroud)