我有一个非常独特的数据集
datetime | userID
------------------------------
1/1/2019 21:30 | 3
3/3/2018 8:45 | 3
6/12/2018 1:20 | 3
1/3/2018 8:45 | 4
12/12/2018 1:20 | 4
....
我需要按每个用户进行汇总,以计算唯一的时间条目以及最早和最新时间之间的小时数
userID | timedif | totalentries
-------------------------------
3 7283 3
4 528 2
我正在尝试使用另一个线程中引用的聚合函数,但是没有运气,因为需要对日期进行排序,并且需要对每一行(自定义函数)计算日期差异。
sessionLength = function(x) {
x1 =sort(x, decreasing = TRUE)[2]
x2= sort(x, decreasing = FALSE)[2]
dd=difftime(x1, x2, units = "hours")
return (dd)
}
Count = function(x) {
return (nrow(x))
}
aggregate(data, by=list(data$userid), FUN = function(x) c(mn =
sessionLength(x), n = Count(x) ) )
但这不起作用:“字符字符串不是标准的明确格式”