在R中添加日期

时间:2014-01-28 14:49:22

标签: r date

我有以下数据集:

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)合并到每个演员的四分之一。为此,还必须对频率计数求和。

如何将三个月合并到四分之一? 我如何总结每季度的频率计数?

2 个答案:

答案 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,我们需要添加一天。