これは少し複雑ですが、毎月を3分の1に減らし、3分の1の平均を取得できます。たとえば、次のようにStackOverflowに
library(dplyr)
library(lubridate)
# Fake data
set.seed(10)
df = data.frame(date=seq(as.Date("2015-01-01"), as.Date("2015-12-31"), by="1 day"),
value=rnorm(365))
# Cut months into thirds
df = df %>%
mutate(mon_yr = paste0(month(date, label=TRUE, abbr=TRUE) , " ", year(date))) %>%
group_by(mon_yr) %>%
mutate(cutMonth = cut(day(date),
breaks=c(0, round(1/3*n()), round(2/3*n()), n()),
labels=c("1st third","2nd third","3rd third")),
cutMonth = paste0(mon_yr, ", ", cutMonth)) %>%
ungroup %>%
mutate(cutMonth = factor(cutMonth, levels=unique(cutMonth)))
date value cutMonth
1 2015-01-01 0.01874617 Jan 2015, 1st third
2 2015-01-02 -0.18425254 Jan 2015, 1st third
3 2015-01-03 -1.37133055 Jan 2015, 1st third
...
363 2015-12-29 -1.3996571 Dec 2015, 3rd third
364 2015-12-30 -1.2877952 Dec 2015, 3rd third
365 2015-12-31 -0.9684155 Dec 2015, 3rd third
# Summarise to get average value for each 1/3 of a month
df.summary = df %>%
group_by(cutMonth) %>%
summarise(average.value = mean(value))
cutMonth average.value
1 Jan 2015, 1st third -0.49065685
2 Jan 2015, 2nd third 0.28178222
3 Jan 2015, 3rd third -1.03870698
4 Feb 2015, 1st third -0.45700203
5 Feb 2015, 2nd third -0.07577199
6 Feb 2015, 3rd third 0.33860882
7 Mar 2015, 1st third 0.12067388
...
ようこそ。あなたのコードの画像を投稿するのではなく、画像ではなくテキストとしてコードを置くと、人々はそれを感謝します。これにより、より簡単に調べることができます。 – lmo
あなたのアドバイスをありがとうございます。@lmo – Guisseppe
1日目から10日目までは1、次に11から20は2、> 20は3という新しい列を作成するのが簡単な方法でしょう。 (TM102〜Mes + x、data = huancavelica、mean) 'のようなものを試してみてください。おそらくより良い方法がありますが、これは簡単です。 '?aggregate'や[this one](http://stackoverflow.com/questions/21982987/mean-per-group-in-a-data-frame)のような質問も参照してください。 – Laterow