2013-05-20 3 views
2

У меня есть эта dataframe «df1», как пример, который фактически является частью гораздо большего размера (15 лет):Compute среднемесячных от ежедневных данных

   X1   X2 
3798 2009-12-29   0 
3799 2009-12-30   0 
3800 2009-12-31   0 
3802 2010-01-02   0 
3803 2010-01-03   2.1 
3804 2010-01-04   0 
3805 2010-01-05   0 
3806 2010-01-06   0 
3807 2010-01-07   0 
3808 2010-01-08   0 
3809 2010-01-09   0 
3810 2010-01-10   6.8 
3811 2010-01-12   0 
3812 2010-01-13   0 
3813 2010-01-14  17.7 
3814 2010-01-16   0 
3815 2010-01-17   0 
3816 2010-01-18   1.5 
3817 2010-01-19   0 
3818 2010-01-20   0 
3819 2010-01-21   0 
3820 2010-01-22   0 
3821 2010-01-23   0 
3822 2010-01-24   0 
3823 2010-01-25   0 
3824 2010-01-26   0 
3825 2010-01-27   4.5 
3826 2010-01-28   0 
3827 2010-01-29   0 
3828 2010-01-31   0 
3829 2010-02-01   0 
3830 2010-02-03   0 
3831 2010-02-04   0 
3832 2010-02-05   0 
3833 2010-02-07   0 
3834 2010-02-08   0 
3835 2010-02-09   1.2 

Я хочу использовать эту dataframe, чтобы создать новую «df2» со средними значениями в месяц. Кто-нибудь знает как это сделать? Помогите было бы здорово!

+3

Вы попробовали найти stackoverflow или google для ответа? Это довольно распространенный вопрос. –

+0

Или посмотрите в разделе «Связанный» справа. – Frank

ответ

13

В одном из способов, используя base R, вы должны убедиться, что ваши даты относятся к классу Date или тому подобное (например, POSIXct), если вы еще этого не сделали, а затем для извлечения месяцев и лет (поскольку ваши данные занимают более одного год) и агрегат следующим образом:

# Convert to date if not already 
df1$X1 <- as.Date(df1$X1) 

# Get months 
df1$Month <- months(df1$X1) 

# Get years 
df1$Year <- format(df1$X1,format="%y") 

# Aggregate 'X2' on months and year and get mean 
aggregate(X2 ~ Month + Year , df1 , mean) 
# Month Year  X2 
#1 December 09 0.0000000 
#2 February 10 0.1714286 
#3 January 10 1.2074074 

Существует несколько способов сделать это, если вы посмотрите вокруг.

+0

Думаю, мне следовало бы оглядеться немного лучше. Thx за помощь, хотя! – MB123

+0

@ MB123 Иногда трудно найти правильные условия поиска. Добро пожаловать! –

+4

Как мне получить месяцы в правильном порядке? –

Смежные вопросы