R基于工作日和周末的平均计数
我有以下原始数据的子集数据R基于工作日和周末的平均计数,r,R,我有以下原始数据的子集数据 ID Day 1 Wednesday 2 Wednesday 1 Thursday 1 Friday 1 Saturday 2 Saturday 2 Sunday 1 Monday 正如您所看到的,ID 1在星期三有一个条目。我需要将ID 1的工作日相加,然后除以5。类似地,我需要对ID 1的周末天数求和,然后除以2 我需要的输出是 ID Weekdays Weekends 1
ID Day
1 Wednesday
2 Wednesday
1 Thursday
1 Friday
1 Saturday
2 Saturday
2 Sunday
1 Monday
正如您所看到的,ID 1在星期三有一个条目。我需要将ID 1的工作日相加,然后除以5。类似地,我需要对ID 1的周末天数求和,然后除以2
我需要的输出是
ID Weekdays Weekends
1 0.8 0.5
2 0.2 1
如您所见,对于ID 1,Weekdays=0.8=(ID 1的4个条目在工作日)/5
类似地,Weekends=0.5=(周末有1个条目)/2
我需要实现的是计算每个ID在周末和工作日的平均出现次数。我知道我们可以通过很多步骤来实现功能。有没有一种方法可以用更少的LOC实现相同的功能?您可以创建一些短期周末向量,然后只需进行简单的聚合,下面是一个可能的
数据表解决方案
indx <- c("Sunday", "Saturday")
library(data.table)
res <- setDT(df)[, as.list(table(Day %in% indx)/c(5, 2)), by = ID]
setnames(res, c("ID", "Weekdays", "Weekends"))
# ID Weekdays Weekends
# 1: 1 0.8 0.5
# 2: 2 0.2 1.0
indx