R时间戳差异打印

时间:2014-08-25 21:57:51

标签: r timestamp

在下面的代码中,最后一个和最后一个R代码会产生一些不同的结果,为什么?在运行最后一行之后为什么我没有输出“时差是5分钟的时差”? 我怎么能得到这样的输出?

filenames <- c("CH7Data_20130401T130110.csv", "CH7Data_20130401T130610.csv")
timestamps <- gsub(".*_([^.]+).*", "\\1", filenames)
## [1] "20130401T130110" "20130401T130610"
timestamps <- as.POSIXlt(timestamps, format = "%Y%m%dT%H%M%S")
## [1] "2013-04-01 13:01:10 PDT" "2013-04-01 13:06:10 PDT"
timestamps[2]-timestamps[1]
##Time difference of 5 mins
cat("time difference is",timestamps[2]-timestamps[1])
##time difference is 5

2 个答案:

答案 0 :(得分:5)

&#39; difftime&#39; -objects是具有特殊类的原子对象,因此它们有一个打印方法可以改变控制台上看到的输出。如果您希望在注释中声明打印包含控制台内容和某些序言的冗余消息,那么这将有效:

> cat("time difference is",capture.output(timestamps[2]-timestamps[1]) )
time difference is Time difference of 5 mins

您可以在序言文字的末尾插入换行符:

> cat("time difference is\n",capture.output(timestamps[2]-timestamps[1]) )
time difference is
 Time difference of 5 mins

答案 1 :(得分:0)

尝试

diff = timestamps[2]-timestamps[1]
cat("time difference is",diff,attr(diff,"units"),"\n")