我有一个“日期”向量,其中包含以mm / dd / yyyy格式表示的日期:
head(Entered_Date,5)
[1] 1/5/1998 1/5/1998 1/5/1998 1/5/1998 1/5/1998
我试图根据日期绘制频率变量,但我想按月或年分组日期 . 就像现在一样,每天有一个频率,但我想按月或年绘制频率 . 因此,对于1/5/1998,1为1/7/1998和3为1/8/1998,频率为1,我想将其显示为1为1/1998 . 这是一个相对较大的数据集,从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", ...
5 回答
以下是使用
dplyr
的示例 . 您只需在format
语句中使用月份%m
或年份%Y
的相应日期格式字符串 .来自lubridate的floor_date做得很好 .
感谢Roman Cheplyaka
https://ro-che.info/articles/2017-02-22-group_by_month_r
也许您只需在数据中添加一列,如下所示:
Year <- format(as.Date(Entered_Date, "%d/%m/%Y"), "%Y")
不需要
dplyr
. 看看?as.POSIXlt
不需要使用
ggplot2
但它很适合这种事情 .如果你想看到实际的数字
使用cut()函数有一种超级简单的方法:
你会得到这个: