我有一个"日期"向量,它包含mm/dd/yyyy格式的日期:

 head(Entered_Date,5)
[1] 1/5/1998 1/5/1998 1/5/1998 1/5/1998 1/5/1998

我试图根据日期绘制一个频率变量,但我想按月份或年份对日期进行分组.现在,每天都有一个频率,但我想按月份或年份绘制频率.因此,我不希望1998年1月5日的频率为1,1998年1月7日的频率为1,1998年1月8日的频率为3,而是希望1998年1月1日的频率为5.这是一个相对较大的数据集,日期从1998年到现在,我想找到一些自动化的方法来实现这一点.

> dput(head(Entered_Date))
structure(c(260L, 260L, 260L, 260L, 260L, 260L), .Label = c("1/1/1998", 
"1/1/1999", "1/1/2001", "1/1/2002", "1/10/2000", "1/10/2001", 
"1/10/2002", "1/10/2003", "1/10/2005", "1/10/2006", "1/10/2007", 
"1/10/2008", "1/10/2011", "1/10/2012", "1/10/2013", "1/11/1999", 
"1/11/2000", "1/11/2001", "1/11/2002", "1/11/2005", "1/11/2006", 
"1/11/2008", "1/11/2010", "1/11/2011", "1/11/2012", "1/11/2013", 
"1/12/1998", "1/12/1999", "1/12/2001", "1/12/2004", "1/12/2005", ...

推荐答案

下面是一个使用dplyr的示例.您只需在format语句中使用%m月或%Y年对应的日期格式字符串.

set.seed(123)
df <- data.frame(date = seq.Date(from =as.Date("01/01/1998", "%d/%m/%Y"), 
                                 to=as.Date("01/01/2000", "%d/%m/%Y"), by="day"),
                 value = sample(seq(5), 731, replace = TRUE))

head(df)
        date value
1 1998-01-01     2
2 1998-01-02     4
3 1998-01-03     3
4 1998-01-04     5
5 1998-01-05     5
6 1998-01-06     1

library(dplyr)

df %>%
mutate(month = format(date, "%m"), year = format(date, "%Y")) %>%
group_by(month, year) %>%
summarise(total = sum(value))

Source: local data frame [25 x 3]
Groups: month [?]

   month  year total
   (chr) (chr) (int)
1     01  1998   105
2     01  1999    91
3     01  2000     3
4     02  1998    74
5     02  1999    77
6     03  1998    96
7     03  1999    86
8     04  1998    91
9     04  1999    95
10    05  1998    93
..   ...   ...   ...

R相关问答推荐

如何删除字符串中重复的字符序列?

feature_weights参数没有影响Xgboost

如何提高以键ID为列的表中键查找的效率?

创建重复删除的唯一数据集组合列表

混淆矩阵,其中每列和等于1

如何创建构成多个独立列条目列表的收件箱框列?

更改绘图上的x轴断点,而不影响风险?

如何修复R码的置换部分?

如果行和大于值,则过滤

Highcharter多次钻取不起作用,使用不同方法

在另一个函数中调用ggplot2美学

使用整齐的计算(curl -curl )和杂音

使用较长的查询提取具有部分匹配的列表中的较短目标,

如何写商,水平线,在一个单元格的表在R

R spatstat Minkowski Sum()返回多个边界

以字符格式导入的ExcelElectron 表格日期列标题

自定义gggraph,使geom_abline图层仅在沿x轴的特定范围内显示

提高圣彼得堡模拟的速度

在gggraph中显示来自不同数据帧的单个值

替换在以前工作的代码中有x行&q;错误(geom_sf/gganimate/dow_mark)