我将数据保存在.xlsx文件中,并在数据中将列日期和时间分开。但是,我输入代码;
data1< -readWorksheetFromFile(“file.xlsx”,sheet =“Sheet1”)
将数据转换为R.因此,我在R环境中获取时间列,并附加了无意义日期。所以R中的时间列看起来像 1899-12-31 16:07:11 ,在这种情况下,我只想花时间 16:07:11 。怎么办?
答案 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。