具有Lubridate持续时间的Data.frame摘要

时间:2016-09-20 11:30:55

标签: r duration lubridate

我正在使用lubridate-Durations来存储视频的持续时间。

如果我调用摘要(视频),我会收到以下错误:

    Error in sprintf("%ds (~%s %ss)", x, x2, unit, "s)") : 
     invalid format '%d'; use format %f, %e, %g or %a for numeric objects

str(videos)说:

  $ DURATION              :Formal class 'Duration' [package "lubridate"] with 1 slot
   .. ..@ .Data: num  602 760 1027 714 720 .

有没有办法解决这个问题?使用具有相同功能的lubridate,如mean,top等。比如数值就好了。

只有大小为1250或更高的data.frame才会出现错误

2 个答案:

答案 0 :(得分:2)

此问题已通过开发人员版本的lubridate修复。

退房:https://github.com/hadley/lubridate/commit/faf336770917f8cb624789f11bf01e12090d838f

答案 1 :(得分:1)

您的示例不可重复,这是我使用的代码。

set.seed(1)

DURATION = lubridate::dminutes(
  sample(0:300, 2000, replace = T)
) 

videos <- data.frame(
  DURATION = DURATION
)

str(videos)
# 'data.frame': 2000 obs. of  1 variable:
# $ DURATION:Formal class 'Duration' [package "lubridate"] with 1 slot
#  .. ..@ .Data: num  4740 6720 10320 16380 3600 ...

summary(videos)
#    DURATION                   
# Min.   :0s                    
# 1st Qu.:4320s (~1.2 hours)    
# Median :8700s (~2.42 hours)   
# Mean   :8909s (~2.47 hours)   
# 3rd Qu.:13620s (~3.78 hours)  
# Max.   :18000s (~5 hours)