Из того, что я понял в вопросе, я создал воспроизводимый пример всего за 2 года, я использую пакет lubridate
для работы с форматами даты
dates <- c('1-1-2009', '1-2-2009', '1-3-2009', '1-4-2009', '1-5-2009', '1-6-2009',
'1-7-2009', '1-8-2009', '1-9-2009', '1-10-2009', '1-11-2009', '1-12-2009',
'1-1-2010', '1-2-2010', '1-3-2010', '1-4-2010', '1-5-2010', '1-6-2010', '1-7-2010',
'1-8-2010', '1-9-2010', '1-10-2010', '1-11-2010', '1-12-2010')
set.seed(42)
prices <- rnorm(24, mean = 300, sd = 15)
library(lubridate)
Axa <- data.frame(dates = dmy(dates), prices = prices)
Axa <- Axa %>% mutate(obs_year = year(dates)) %>% group_by(obs_year) %>%
summarise(prices = mean(prices))
, который дает следующий результат
# A tibble: 2 x 2
obs_year prices
<dbl> <dbl>
1 2009 311.
2 2010 292.
Это должно работать в течение всех разных лет, которые у вас есть в вашем файле
Для чтения и записи файлов я предполагаю, что вы знаете, как использовать read.csv
и write.csv