Агрегирование среднего «%H%M» в ячейках «неделя» в R

Я боролся с этим некоторое время. Я новичок в работе с данными ts и всеми связанными пакетами R. У меня есть df с несколькими переменными, включая то, какое «время дня» по Гринвичу «%H%M» и дата «%Y/%m/%e» произошли. Я хочу объединить/агрегировать данные о датах в «недели» (, т. е. %W/%g ), и рассчитать среднее «время дня», когда выборка происходила в течение этой недели.

Я смог рассчитать другие FUN для числовых переменных (, например, вес ), сначала преобразовав мой df в объект зоопарка, а затем используя командуaggregate.zoo, как показано ниже:

#calculate the sum weight captured every week 
x2c <- aggregate(OA_zoo, as.Date(cut(time(OA_zoo), "week")), sum)

Однако я не уверен, как обойти тот факт, что я работаю с форматом даты , а не с числом , и был бы признателен за любые советы! Кроме того, я, очевидно, слишком много кодировал, выполняя каждую из моих переменных отдельно. Будет ли способ применить различные значения FUN (sum/mean/max/min )к моему df путем агрегирования "еженедельно" с помощью plyr? Или какие-то другие пакеты?

ПРАВКИ/ПОЯСНЕНИЯ Вот вывод dputобразца моего полного набора данных. У меня есть данные за 2004 -2011. То, что я хотел бы посмотреть/построить с помощью ggplot2, - это среднее/медианное значение ВРЕМЕНИ (%H%M ), агрегированное за период в несколько недель с течением времени (2004 -2011 ). Сейчас мои данные не агрегированы по неделям, а представляют собой ежедневную (случайную выборку ).

> dput(godin)
structure(list(depth = c(878, 1200, 1170, 936, 942, 964, 951, 
953, 911, 969, 960, 987, 991, 997, 1024, 978, 1024, 951, 984, 
931, 1006, 929, 973, 986, 935, 989, 1042, 1015, 914, 984), duration = c(0.8, 
2.6, 6.5, 3.2, 4.1, 6.4, 7.2, 5.3, 7.4, 7, 7, 5.5, 7.5, 7.3, 
7.5, 7, 4.2, 3, 5, 5, 9.3, 7.9, 7.3, 7.2, 7, 5.2, 8, 6, 7.5, 
7), Greenland = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 40L, 28L, 0L, 
0L, 34L, 7L, 28L, 0L, 0L, 0L, 27L, 0L, 0L, 0L, 44L, 59L, 0L, 
0L, 0L, 0L, 0L, 0L), date2 = structure(c(12617, 12627, 12631, 
12996, 12669, 13036, 12669, 13036, 12670, 13036, 12670, 13037, 
12671, 13037, 12671, 13037, 12671, 13038, 12672, 13038, 12672, 
13038, 12672, 13039, 12631, 12997, 12673, 13039, 12673, 13039
), class = "Date"), TIME = c("0940", "0145", "0945", "2045", 
"1615", "0310", "2130", "1045", "0625", "1830", "1520", "0630", 
"0035", "1330", "0930", "2215", "2010", "0645", "0155", "1205", 
"0815", "1845", "2115", "0350", "1745", "0410", "0550", "1345", 
"1515", "2115")),.Names = c("depth", "duration", "Greenland", 
"date2", "TIME"), class = "data.frame", row.names = c("6761", 
"9019", "9020", "9021", "9022", "9023", "9024", "9025", "9026", 
"9027", "9028", "9029", "9030", "9031", "9032", "9033", "9034", 
"9035", "9036", "9037", "9038", "9039", "9040", "9041", "9042", 
"9043", "9044", "9045", "9046", "9047"))
5
задан GSee 17 July 2012 в 17:57
поделиться