R 计算两个日期之间的平均值

R 计算两个日期之间的平均值,r,datatable,mean,R,Datatable,Mean,我有一个数据表,其中有date、stock、daily return、start date和end date列 我想计算每个股票的开始日期和结束日期之间的每日回报平均值,其中结束日期=日期,和开始日期=日期-1年。该图像是我的数据表的一小部分,其中包含5个不同的时间段(2009-2010、2010-2011…2014-2015) 我们首先创建数据集: d1 <- data.frame(Date = seq.Date(as.Date("2009-04-07"), as.Date("2015

我有一个数据表,其中有date、stock、daily return、start date和end date列

我想计算每个股票的开始日期和结束日期之间的每日回报平均值,其中
结束日期=日期
,和
开始日期=日期-1年
。该图像是我的数据表的一小部分,其中包含5个不同的时间段
(2009-2010、2010-2011…2014-2015)


我们首先创建数据集:

d1 <- data.frame(Date = seq.Date(as.Date("2009-04-07"), as.Date("2015-04-06"), by = "day"), stock = 60004)
d2 <- data.frame(Date = seq.Date(as.Date("2009-04-07"), as.Date("2015-04-06"), by = "day"), stock = 60005)
d3 <- data.frame(Date = seq.Date(as.Date("2009-04-07"), as.Date("2015-04-06"), by = "day"), stock = 60006)
d4 <- data.frame(Date = seq.Date(as.Date("2009-04-07"), as.Date("2015-04-06"), by = "day"), stock = 60007)

dat <- rbind(d1, d2, d3, d4)

dat$D <- rnorm(dim(dat)[1])
dat$stock <- as.factor(dat$stock)

datzoo$rollmean <- ave(dats$D, datzoo$stock, FUN = function(x) rollmean(x, k = 365, fill = 0, align = "right"))

d1欢迎来到StackOverflow。为了问一个更好的问题,请阅读和。由于在您的数据中缺少开始日期值,因此您无法计算任何日回报。“D”表示我想要求其平均值的日回报值。所以我尝试了类似于dt[,meanreturn:=mean(D),by=stock]的方法,但我不确定应该在mean()中添加什么来让它知道只在开始日期和结束日期之间查找D值的平均值。您能更清楚地了解您的期望吗?也许给我们举一个所需输出的例子。我想我明白你的要求,但我不确定你计算的时间范围:2009-2010年,具体日期是什么?