R汇总功能和时间

时间:2015-10-21 11:44:22

标签: r time summary

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

摘要功能的默认使用"仅"将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

3 个答案:

答案 0 :(得分:3)

尝试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

答案 1 :(得分:2)

自&#39;时间&#39;列存储为字符串,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)

答案 2 :(得分:0)

您可以尝试使用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