簡體   English   中英

匯總日期以產生唯一的期間

[英]Aggregate Dates to produce unique periods

我希望能夠將在幾天之內收集的調查數據匯總到一個獨特的時期。 例如,對於前三個日期(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)

這是數據集標題。

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")

這應該工作:

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM