首页 文章

在R中转换时间间隔

提问于
浏览
1

我对R的知识和经验有限,所以请耐心等待 .

我有以下形式的持续时间测量:

d h:m:s.s

例如3 23:12:11.931139,其中d =天,h =小时,m =分钟,s.s =十进制秒 . 我想创建这些值的直方图 .

有没有一种简单的方法将这种字符串输入转换为数字形式,如秒?我发现的所有信息似乎都是针对日期时间对象的 .

理想情况下,我希望能够在命令行上将数据列表传递给R,从而动态创建直方图 .

干杯

狐猴之类

2 回答

  • 2

    基于SO的另一种解决方案:

    op <- options(digits.secs=10)
    z <- strptime("3+23:12:11.931139", "%d+%H:%M:%OS")
    vec_z <- z + rnorm(100000)
    hist(vec_z, breaks=20)
    

    简短说明:首先,我以显示毫秒的方式设置选项 . 现在,如果您在控制台中键入 z ,则会得到"2012-05-03 23:12:11.93113" . 然后,我将您的字符串解析为日期对象 . 然后我创建了一些日期并绘制直方图 . 我认为对你来说重要的一步是解析, strptime 应该帮助你

  • 2

    我会这样做:

    str = "3+23:12:11.931139"    
    result = sum(as.numeric(unlist(strsplit(str, "[:\\+]", perl = TRUE))) * c(24*60*60, 60*60, 60, 1))
    > result
    [1] 342731.9
    

    然后,您可以将其包装到函数中并应用于列表或向量 .

相关问题