根据另一个变量的值计算观察值之间的差异
Calculate difference between observation in dependence of value of another variable
我有一个应用程序记录,想计算两个特定事件之间的时间。
我的记录结构是这样的:
appdata <- data.frame(userid = c(1,1,1,1,1), dayid = c(32,32,32,32,32), activity = c("appstart","levelup","appclose","appstart","appclose"), datesec = c(2670,2726,2755,2787,4161))
appdata
userid dayid activity datesec
1 1 32 appstart 2670
2 1 32 levelup 2726
3 1 32 appclose 2755
4 1 32 appstart 2787
5 1 32 appclose 4161
我想知道一天用户活跃了多长时间。所以我必须计算每个 appstart 和 appclose 之间的差异,然后构建总和,所以这里:(2755-2670) + (4161-2755) = 1459.
新数据集应如下所示:
appdata2 <- data.frame(user = c(1), dayid = c(32), usagetime_in_sec = c(1491))
appdata2
user dayid usagetime_in_sec
1 1 32 1459
这是我的基本方法,但我不知道如何告诉 R 始终计算应用启动和下一个应用关闭事件之间的差异:
apdata2 <- appdata %>%
group_by(userid, dayid) %>%
summarise(usagetime_in_sec = sum(datsec(type == "appclose") - datesec(type == "appstart")))
你们非常亲密。我想你需要像
这样的东西
library(dplyr)
appdata %>%
group_by(userid, dayid) %>%
summarise(usagetime_in_sec = sum(datesec[activity == "appclose"] -
datesec[activity == "appstart"]))
# userid dayid usagetime_in_sec
# <dbl> <dbl> <dbl>
#1 1 32 1459
但是,请确保 "appclose" 和 "appstart" activity
的数量相等,否则可能会导致计算混乱。
我有一个应用程序记录,想计算两个特定事件之间的时间。
我的记录结构是这样的:
appdata <- data.frame(userid = c(1,1,1,1,1), dayid = c(32,32,32,32,32), activity = c("appstart","levelup","appclose","appstart","appclose"), datesec = c(2670,2726,2755,2787,4161))
appdata
userid dayid activity datesec
1 1 32 appstart 2670
2 1 32 levelup 2726
3 1 32 appclose 2755
4 1 32 appstart 2787
5 1 32 appclose 4161
我想知道一天用户活跃了多长时间。所以我必须计算每个 appstart 和 appclose 之间的差异,然后构建总和,所以这里:(2755-2670) + (4161-2755) = 1459.
新数据集应如下所示:
appdata2 <- data.frame(user = c(1), dayid = c(32), usagetime_in_sec = c(1491))
appdata2
user dayid usagetime_in_sec
1 1 32 1459
这是我的基本方法,但我不知道如何告诉 R 始终计算应用启动和下一个应用关闭事件之间的差异:
apdata2 <- appdata %>%
group_by(userid, dayid) %>%
summarise(usagetime_in_sec = sum(datsec(type == "appclose") - datesec(type == "appstart")))
你们非常亲密。我想你需要像
这样的东西library(dplyr)
appdata %>%
group_by(userid, dayid) %>%
summarise(usagetime_in_sec = sum(datesec[activity == "appclose"] -
datesec[activity == "appstart"]))
# userid dayid usagetime_in_sec
# <dbl> <dbl> <dbl>
#1 1 32 1459
但是,请确保 "appclose" 和 "appstart" activity
的数量相等,否则可能会导致计算混乱。