【发布时间】:2017-10-27 00:27:04
【问题描述】:
我用数据创建了一个数据框:
idCol <- c('1','1','2','2')
stepCol <- c('step1' , 'step2' , 'step1' , 'step2')
timestampCol <- c('01-01-2017:09.00', '01-01-2017:10.00', '01-01-2017:09:00', '01-01-2017:14.00')
mydata <- data.frame(idCol , stepCol , timestampCol)
colnames(mydata) <- c('id' , 'steps' , 'timestamp')
stepCol 是给定 id 的开始时间,当 step2 开始时,这意味着 step1 已经结束。 我正在尝试生成一个 tibble,其中包含基于步骤开始时间的每个 id 的平均持续时间。
所以我正在尝试生成:
step , averagetime
step1 , 1 hour
step2 , 5 hours
我得到的最接近的是:
diffTime <- c(0, difftime(ymd_hms(mydata$timestamp[-1]), ymd_hms(mydata$timestamp[-nrow(mydata)]), units="hours"))
diffTime %>% group_by(id, steps) %>% summarize(mean(diffTime))
但返回错误:
Error in UseMethod("group_by_") :
no applicable method for 'group_by_' applied to an object of class "c('double', 'numeric')"
【问题讨论】:
标签: r