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