【问题标题】:How to import timestamps & durations in HH:MM:SS format from excel in R?如何从 R 中的 excel 导入 HH:MM:SS 格式的时间戳和持续时间?
【发布时间】:2014-11-14 11:44:52
【问题描述】:

我有一个 excel 表,它有一个 ,其中包含格式为 HH:MM:SS时间戳
但是,将导出的 CSV 读入 R 后,对应列 data$timestamp 中的值被解释为 huge 小数(例如,7,06018515869254E-04。)

我怎样才能让 R 来解释数字的意思?

我尝试了以下方法但没有成功(yield NA):

timeTest <- data$timestamp[1] 
print(as.POSIXct((timeTest - 719529)*86400, origin = "1970-01-01", tz = "UTC"))
print(as.POSIXct(strptime(timeTest, %Y%m%d %H%M%S")))

如何实现所需格式的提示将有很大帮助!


这是来自实际CSV 的示例:
0,692210648148148|0,692534722222222|3,24074074074088E-04

由于我使用| 作为分隔符,我导入数据如下:

data <- read.delim(file,header=TRUE,sep="|")

【问题讨论】:

  • 这不是一个很大的数字,它是一个很小的数字(尽管我怀疑你配置你的 R 的方式是使用, 作为控制台中的十进制分隔符)。显示 CSV 的前几行以及如何导入。
  • 看起来像是“语言设置”问题。您有一个 csv 文件,其中管道作为分隔符,逗号作为小数分隔符!
  • @hvollmeier:那么有什么解决方法呢?查找替换所有“,”并替换为“。”?
  • 我没有看到HH:MM:SS 格式的列。但是,您应该使用read.table(file, header=TRUE, sep="|", dec=",") 阅读该文件。
  • @Roland:格式 ''HH:MM:SS'' 在原始 excel 文件中,示例来自导出的 CSV。使用简单的 VB 脚本进行导出...

标签: r excel timestamp posix epoch


【解决方案1】:
DF <- read.table(text="x|y|timestamp
                 0,692210648148148|0,692534722222222|3,24074074074088E-04",
                 sep="|", dec=",", header=TRUE)
library(chron)
DF$timestamp <- times(DF$timestamp)
#          x         y timestamp
#1 0.6922106 0.6925347  00:00:28

【讨论】:

    猜你喜欢
    • 2019-07-13
    • 1970-01-01
    • 2011-07-24
    • 2016-07-17
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多