I have a panel dataframe like this
date firms return mkreturn
5/1/1988 A 5 4
6/1/1988 A 6 6
7/1/1988 A 4 12
8/1/1988 A 5 3
9/1/1988 A 6 12
11/1/1988 A 6 14
12/1/1988 A 12 5
13/01/1988 A 3 6
14/01/1988 A 2 4
15/01/1988 A 5 5
16/01/1988 A 2 6
18/01/1988 A 7 6
19/01/1988 A 3 2
20/01/1988 A 5 7
21/01/1988 A 7 2
22/01/1988 A 5 5
23/01/1988 A 9 7
25/01/1988 A 1 5
26/01/1988 A 5 6
27/01/1988 A 2 6
28/01/1988 A 7 12
29/01/1988 A 2 3
5/1/1988 B 5 2
6/1/1988 B 7 5
7/1/1988 B 5 5
8/1/1988 B 9 7
9/1/1988 B 1 5
11/1/1988 B 5 6
12/1/1988 B 2 12
13/01/1988 B 7 6
14/01/1988 B 2 11
15/01/1988 B 5 2
16/01/1988 B 6 14
18/01/1988 B 8 12
19/01/1988 B 5 15
20/01/1988 B 4 8
21/01/1988 B 3 9
22/01/1988 B 18 10
23/01/1988 B 5 3
25/01/1988 B 2 5
26/01/1988 B 7 6
27/01/1988 B 3 8
28/01/1988 B 9 5
29/01/1988 B 2 3
I want to find out monthly covariance of each firm's return with market return. Hence the expected output is like
date Firms cov(return, mkreturn)
Jan-88 A ....
Jan-88 B ....
I use the following formula to find out monthly variance
df_var<-aggregate( return ~ Month+Year+firms, df , var )
How can I modify this formula to find out covariance? Please help me in this regard.