我怎样才能用xlconnect来重温时间?

时间:2014-01-23 15:16:09

标签: r xlconnect

我将数据保存在.xlsx文件中,并在数据中将列日期和时间分开。但是,我输入代码;

  

data1< -readWorksheetFromFile(“file.xlsx”,sheet =“Sheet1”)

将数据转换为R.因此,我在R环境中获取时间列,并附加了无意义日期。所以R中的时间列看起来像 1899-12-31 16:07:11 ,在这种情况下,我只想花时间 16:07:11 。怎么办?

1 个答案:

答案 0 :(得分:2)

XLConnect使用POSIXct来表示data.frame中的日期时间值。如果您只想提取时间组件,可以使用strftime(your_column, format = "%H:%M:%S")(表示为character)。

为什么你得到1899-12-31的一些背景: Excel将日期时间值存储为十进制数,表示自1900-01-00以来的天数(是,第00天! - 不存在)。小数天表示小时,分钟和秒。因此,十进制数1.0表示1900-01-01,数字0.0表示1900-01-00。由于后者不存在,因此在XLConnect中它实际上表示为第1天的前一天,即1899-12-31。 仅时间值在Excel中表示为十进制数0.xxx。根据以上所述,当在XLConnect中导入时,这导致1899-12-31 HH:MM:SS。

可以找到有关Excel日期时间值的其他信息here