首页 文章

聚合日期以产生独特的时期

提问于
浏览
0

我希望能够将在一段时间内收集的调查数据汇总到一个独特的时期 . 例如,对于前三个日期(2015-03-17,2015-03-23,2015-03-26),我想合并产生“2015年3月”期间 . 然后,我将使用这些组合日期生成箱形图,显示该期间的“Average.Counts” .

所有我想做4个独特的时期:

  • 3月15日(前3个日期见下表)

  • 9月15日(日期为4,5,见下表)

  • 2016年3月(日期6-15,见下表)

  • 2016年9月(日期16-23,见下表)

这是数据集 Headers .

head(Survival.Pre.Harvest)
Bay.Unique       Date Average.Count Total.Predators Time Previous.Average.Count
2          1 2015-03-17         346.9               2    0                     NA
3          1 2015-09-14         326.6               8  181                  346.9
4          1 2016-02-29         322.6               3  349                  326.6
7          2 2015-03-17         326.4               2    0                     NA
8          2 2015-09-14         288.8               4  181                  326.4
9          2 2016-02-29         271.4               6  349                  288.8

这些是数据集中的唯一日期 .

表(Survival.Pre.Harvest $ Date)

2015-03-17 2015-03-23 2015-03-26 2015-09-14 2015-09-15 2016-02-24 2016-02-25 2016-02-26 2016-02-29 
     9          3          1          9          3          4          6          6          5 
2016-03-01 2016-03-02 2016-03-03 2016-03-04 2016-03-22 2016-03-23 2016-09-12 2016-09-13 2016-09-14 
     3          6          3          6          6          2          6          6          4 
2016-09-20 2016-09-22 2016-10-18 2016-10-19 2016-10-20 
     7         10          4          3         14

提前致谢!

dput(head(Survival.Pre.Harvest))
structure(list(Bay.Unique = c(1, 1, 1, 2, 2, 2), Date = structure(c(16511, 
16692, 16860, 16511, 16692, 16860), class = "Date"), Average.Count = c(346.9, 
326.6, 322.6, 326.4, 288.8, 271.4), Total.Predators = c(2L, 8L, 
3L, 2L, 4L, 6L), Time = c(0, 181, 349, 0, 181, 349), Previous.Average.Count =    c(NA, 
346.9, 326.6, NA, 326.4, 288.8)), .Names = c("Bay.Unique", "Date", 
"Average.Count", "Total.Predators", "Time", "Previous.Average.Count"
), row.names = c(2L, 3L, 4L, 7L, 8L, 9L), class = "data.frame")

1 回答

  • 0

    这应该工作:

    library(lubridate)
    library(ggplot2)
    Survival.Pre.Harvest$Date <- ymd(Survival.Pre.Harvest$Date)
    bks = ymd("2015-01-01", "2015-08-31", "2016-01-01", "2016-08-31", "2017-01-01")
    lbs <- c("Mar2015", "Sep2015", "Mar2016", "Sep2016")
    Survival.Pre.Harvest$yearmonth <- cut.Date(Survival.Pre.Harvest$Date, breaks = bks, labels = lbs)
    ggplot(Survival.Pre.Harvest, aes(x=yearmonth, y=Average.Count)) + geom_boxplot()
    

相关问题