R将每日收益合并为月平均值//两个不同长度的data.frames

R将每日收益合并为月平均值//两个不同长度的data.frames,r,merge,data.table,R,Merge,Data.table,我已经计算了一个月的产出,现在我想把平均每日收益合并到这个产出中 我的数据与此类似: Df1 ID YMD R 1 20160101 1.01 1 20160103 1.02 2 20160101 .98 2 20160103 1.03 Df2 ID YM Rm 1 201601 2 201601 现在,我想使用收益平均公式计算Rm列,它是该月内收益乘积的第n个根 我尝试了以下方法,但不起作用: df3 <- merge(df1, df2) setDT(df3)[, R

我已经计算了一个月的产出,现在我想把平均每日收益合并到这个产出中

我的数据与此类似:

Df1
ID  YMD    R 
1 20160101 1.01
1 20160103 1.02
2 20160101 .98
2 20160103 1.03

Df2
ID YM  Rm 
1 201601 
2 201601
现在,我想使用收益平均公式计算Rm列,它是该月内收益乘积的第n个根

我尝试了以下方法,但不起作用:

df3 <- merge(df1, df2)
setDT(df3)[, Rm := (prod(df3$R)^(1/.N)), by = c(df3$ID, df$YM)]

但是,月份天数的长度(此处=2)应该是可变的,因为在整个时间序列中天数不是恒定的

在Df1中构造一个年-月变量。合并此变量。很抱歉,我不知道如何使用合并公式(
df3
df3哪个是您的数据集?
Df1
?这里的
Df2
是做什么的?您想要的输出是什么?请给我们看一下?@lmo我在我的原始文件中这样做了,但我仍然不能使用set.dt公式在Df1中构造一个年-月变量。对这个变量进行合并。很抱歉,我当时不知道如何使用合并公式(
df3
df3哪个是您的数据集?
Df1
?这里的
Df2
是做什么的?您想要的输出是什么?请给我们看一下?@lmo我在原始文件中做了,但仍然不能使用set.dt公式
Rm
(1.01*1.02)^(1/2)= 1.014987685
(0.98*1.03)^(1/2)= 1.004689007