R 汇总函数和时间

R summary function and times

R 汇总函数如何汇总表示为 HH:MM:SS 个字符串的时间值?

例如,导入以下 CSV 文件时:

    name,time
name-a,1:00:00
name-b,1:15:00
name-c,1:30:00
name-d,1:45:00
name-e,2:00:00

汇总函数的默认使用 "only" 将 HH:MM:SS 时间列为不同的字符串。

> summary(times)
         name        time  
     name-a:1   1:00:00:1  
     name-b:1   1:15:00:1  
     name-c:1   1:30:00:1  
     name-d:1   1:45:00:1  
     name-e:1   2:00:00:1

我希望汇总功能将时间理解为 HH:MM:SS 时间值并显示类似于以下内容的汇总:

> summary(times)
time
Min.   :1:00:00
1st Qu.:1:15:00
Median :1:30:00  
Mean   :1:30:00
3rd Qu.:1:45:00
Max.   :2:00:00

尝试 chron 包及其 times 功能。

times$time<-times(times$time)
summary(times)
#    name        time         
#name-a:1   Min.   :01:00:00  
#name-b:1   1st Qu.:01:15:00  
#name-c:1   Median :01:30:00  
#name-d:1   Mean   :01:30:00  
#name-e:1   3rd Qu.:01:45:00  
#           Max.   :02:00:00

由于 'time' 列存储为字符串,因此 R 无法计算其上的任何摘要统计信息。 只需将您的时间戳转换为任何适当的时间格式即可。

library(lubridate)

times <- data.frame(name = c("name-a",
                             "name-b",
                             "name-c",
                             "name-d",
                             "name-e"),
                    time = c("1:00:00",
                             "1:15:00",
                             "1:30:00",
                             "1:45:00",
                             "2:00:00"))

times$time <- hms(times$time)
summary(times)

输出:

 > summary(times)
     name        time          
 name-a:1   Min.   :1H 0M 0S   
 name-b:1   1st Qu.:1H 15M 0S  
 name-c:1   Median :1H 30M 0S  
 name-d:1   Mean   :1H 30M 0S  
 name-e:1   3rd Qu.:1H 45M 0S  
            Max.   :2H 0M 0S  

这里我以 lubridate 包为例,但还有其他选项(检查 ?as.POSIXct 或 ?strptime)

您可以试试strptime函数,然后使用summary(times)

>times$time = strptime(times$time,%H:%M:%S")
> summary(times)
 name        time                    
 name-a:1   Min.   :2015-10-21 01:00:00  
 name-b:1   1st Qu.:2015-10-21 01:15:00  
 name-c:1   Median :2015-10-21 01:30:00  
 name-d:1   Mean   :2015-10-21 01:30:00  
 name-e:1   3rd Qu.:2015-10-21 01:45:00  
            Max.   :2015-10-21 02:00:00