我有以下数据集:
Data <- data.frame(
date = c("2001-1", "2001-2", "2001-3", "2001-1", "2001-2", "2001-3", "2001-1", "2001-2", "2001-3"),
actor = c("A", "B", "C", "A", "B", "C", "A", "B", "C"),
cat = c("I", "II", "III", "I", "II", "III", "I", "II", "III"),
freq = c(2, 3, 4, 1, 2, 5, 2, 6, 3)
)
有演员(A,B和C),他们以不同的方式处理三个主题(I,II或III)(见freq)。
现在我想把每个演员的三个月(2001-1,2001-2和2001-3)合并到每个演员的四分之一。为此,还必须对频率计数求和。
如何将三个月合并到四分之一? 我如何总结每季度的频率计数?
答案 0 :(得分:2)
要将年 - 月转换为季度,您可以尝试:
library(zoo)
Data$qtr <- as.yearqtr(df$date, "%Y-%m")
# sum up the frequency-counts per quarter
aggregate(freq ~ qtr, data = Data, sum)
答案 1 :(得分:1)
aggregate(freq ~ actor + quarter +cat,
data=transform(Data, quarter=quarters(as.Date(paste(date, '1', sep='-')))),
sum)
# actor quarter cat freq
# 1 A Q1 I 5
# 2 B Q1 II 11
# 3 C Q1 III 12
quarters
获取Date
个对象并返回其日历年度季度数。为了将月份字符串转换为基数R中的Date
s,我们需要添加一天。