2016-11-29 9 views
-2

у меня есть кадр данных годовых значений, который выглядит примерно так:Вычислить среднее для деталей временных рядов

Time    Value 
01/2000-12/2000 123 
01/2001-12/2001 126 
01/2002-12/2002 129 
... 
01/2040-12/2040 223 

Я хотел бы рассчитать среднее значение для определенных частей временных рядов (например, 2010-2015 , 2015-2020 и т. Д.)

Может ли кто-нибудь сказать мне, как это сделать?

+0

Не воспроизводимый пример. , –

ответ

1
# first extract the year 
df$year <- as.numeric(sub(".*\\/", "", df$Time)) 
# then a simple mean() does the work for you! 
mean(df$Value[df$year >= 2000 & df$year <= 2005]) 
0

Вы можете сделать что-н, как это, если столбец Time в Date формате:

Чтобы перенести колонку в дату использования формата:

my.data.frame$Date = as.Date(paste("01.01.",sub(".*\\/", "", my.data.frame$Time),sep = ""),format = "%d.%m.%Y") 

Тогда для вычисления среднего значения:

mean(my.data.frame[my.data.frame$Date >= "2016-01-01" & my.data.frame$Date <= "2020-01-01","Value"]) 
+0

данные не имеют времени в том формате, который вы ожидаете! –

+0

Я добавил код. – burton030

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

  • Нет связанных вопросов^_^