2016-09-20 5 views
2

Я использую lubridate-Durations для хранения продолжительности видео.Резюме Data.frame с Lubridate Длительность

я получаю следующее сообщение об ошибке, если я называю резюме (видео):

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 
    .. [email protected] .Data: num 602 760 1027 714 720 . 

есть способ исправить это? Использование lubridate с такими же функциями, как средний, верхний ect. как для числовых значений было бы хорошо.

ошибка встречается, только с data.frame размера 1250 и выше

ответ

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 
# .. [email protected] .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)  
+0

, кажется, что эта проблема является размер data.frame. Если вы используете 2000 образцов вместо 5, вы получите ту же ошибку? Это смешно, потому что мой набор тестов содержит 1255 видео, с подмножеством 1250 он отлично работает, но с еще 5 я получаю ошибку (последние 5 видеороликов не отличаются от остальных) Любые объяснения? – barracuda317

+0

Я редактировал свой код. Когда вы используете 'as.numeric()' ошибка исчезла. –

+0

Ошибка исчезла, но проблема не решена, потому что вы больше не используете Formal Class Duration. Я сохранил DURATION в секундах в моей базе данных и преобразовал его в Luration в lubridate в R, используя 'dseconds()'. Вызов as.numeric - это откат к предыдущей ситуации. – barracuda317

Смежные вопросы