Извините, если этот вопрос уже рассмотрен уже на SO, но я пока не могу найти быстрое решение.Агрегат по конкретному году в R
Я пытаюсь объединить набор данных к конкретному году. Мой кадр данных состоит из почасовых климатических данных в течение 10 лет.
head(df)
# day month year hour rain temp pressure wind
#1 1 1 2005 0 0 7.6 1016 15
#2 1 1 2005 1 0 8.0 1015 14
#3 1 1 2005 2 0 7.7 1014 15
#4 1 1 2005 3 0 7.8 1013 17
#5 1 1 2005 4 0 7.3 1012 17
#6 1 1 2005 5 0 7.6 1010 17
Для расчета ежедневных средств из приведенных выше набора данных, я использую эту функцию совокупного
g <- aggregate(cbind(temp,pressure,wind) ~ day + month + year, d, mean)
options(digits=2)
head(g)
# day month year temp pressure wind
#1 1 1 2005 6.6 1005 25
#2 2 1 2005 6.5 1018 25
#3 3 1 2005 9.7 1019 22
#4 4 1 2005 7.5 1010 25
#5 5 1 2005 7.3 1008 25
#6 6 1 2005 9.6 1009 26
К сожалению, я получаю огромный набор данных, охватывающие все 10 лет (с 2005 по 2014 году). Мне интересно, сможет ли кто-нибудь помочь мне настроить вышеупомянутый агрегированный код, чтобы я мог ежедневно давать сводки в течение определенного года, а не всех из них одним ударом?
Вы можете подмножить 'df' и использовать его в совокупности. то есть. 'd1 <- подмножество (df, год% в% 2005: 2014); aggregate (cbind (temp, pressure, wind) ~ day + month + year, d1, mean) ' – akrun
Большое спасибо Akrun за ваш быстрый ответ и полезный совет, который работает как удовольствие! Именно то, что я искал. Еще раз спасибо! – PJG
Если вы хотите его в одной строке, используйте аргумент 'subset' в aggregate. Добавлено это как решение. – akrun