在R中将POSIX时间的分数转换为POSIX时间

我有一个数据集,将date时间编码为两个单独的variables。 通常情况下,我只是将它们粘贴在一个as.POSIXct里面并继续。 但是,date是以string的forms提供的,一天的时间是24小时的一小部分 – 例如,12pm是0.5,9时30分是0.1458333等。

将分数date转换为时钟似乎并不那么棘手,但如果可能的话,我宁愿使用预先存在的函数。 像R这样的东西存在吗? 一套?

如果有任何用处,这是通过RODBC导入到R中的Excel(xlsx)时间字段。

编辑奇怪的是,在重新审视这个问题时,时间现在被读作POSIXct。 不知道该怎么做。

POSIXct值只是自1970-01-01午夜以来的秒数。 (所以你需要注意你的偏移UTC)。你可以使用date部分,并添加天数24 * 3600(as.Date(dtval)到你的时间值* 24 * 3600。Gabor指向R News上的文章(他写道,谢谢Gabor。)

你没有给出一个string的例子。 如果将date作为string获取,则as.Date(strDate)将以“YYYY-MM-DD”或“YYYY / MM / DD”格式将variables“strDate”转换为Date类。 否则,格式化代码位于?strptime页面上。

一旦你有一个POSIXct分类variables,你可以添加秒数。 这个例子今天增加30分钟到今天的午夜(在我的时区是UTC-5):

 > as.POSIXct(as.Date("2011-02-01")) +30*60 [1] "2011-01-31 19:30:00 EST" 

这是你的时间价值加上午夜我的时间:

 > as.POSIXct(as.Date("2011-02-01 00:00", tzone="UTC"))+3600*5 + 3600*24*timeval [1] "2011-02-01 03:29:59 EST" 

R新闻4/1帮助台文章有阅读Excel中Exceldate的一节。