【发布时间】:2018-03-28 16:55:39
【问题描述】:
我目前的数据看起来像这样:
1 Saturday Evening 16.2 235.84
2 Saturday Evening 23.4 235.29
3 Saturday Evening 29.4 232.79
4 Sunday Evening 24.2 233.89
5 Sunday Evening 24.2 233.66
6 Sunday Evening 24.2 233.38
7 Sunday Evening 24.2 232.99
8 Sunday Evening 25.4 233.21
9 Sunday Evening 26.8 232.37
10 Saturday Night 25.6 231.55
11 Saturday Night 24.4 231.19
12 Saturday Night 24.4 231.63
13 Saturday Night 24.4 231.71
14 Sunday Night 25.2 231.23
15 Sunday Night 25.2 231.23
14 Saturday Night 25.2 231.23
15 Saturday Night 25.2 231.23
15 Sunday Night 25.2 231.23
df = structure(list(V2 = c("Saturday", "Saturday", "Saturday", "Sunday",
"Sunday", "Sunday", "Sunday", "Sunday", "Sunday", "Saturday",
"Saturday", "Saturday", "Saturday", "Sunday", "Sunday", "Saturday",
"Saturday", "Sunday"), V3 = c("Evening", "Evening", "Evening",
"Evening", "Evening", "Evening", "Evening", "Evening", "Evening",
"Night", "Night", "Night", "Night", "Night", "Night", "Night",
"Night", "Night"), V4 = c(16.2, 23.4, 29.4, 24.2, 24.2, 24.2,
24.2, 25.4, 26.8, 25.6, 24.4, 24.4, 24.4, 25.2, 25.2, 25.2, 25.2,
25.2), V5 = c(235.84, 235.29, 232.79, 233.89, 233.66, 233.38,
232.99, 233.21, 232.37, 231.55, 231.19, 231.63, 231.71, 231.23,
231.23, 231.23, 231.23, 231.23)), .Names = c("V2", "V3", "V4",
"V5"), row.names = c(NA, -18L), class = "data.frame")
数据仅包括周六和周日,因此不连续(例如,上周日和下周六开始之间的数据/工作日缺失)。每个周末的数据数量各不相同,因此我需要计算每个周六周日集合中有多少观察值。假设数据从周六到周日开始,然后又到下一组周六到周日,如何统计每组数据并将其存储在向量中?
编辑:例如,使用上面的数据,我想要的输出将是一个包含以下值的向量:[9,6,3]
【问题讨论】:
-
请分享您想要的输出。
-
粗略的方式:
r = rle(df$V2); tapply(r$lengths, rep(1:length(r$values), each=2, length.out=length(r$values)), sum)或with(r, lengths[c(TRUE, FALSE)] + lengths[c(FALSE, TRUE)])