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