I am attempting to calculate correlation by (group\_by) MktDate, for all columns in a dataframe to another column (Security Return).

I have attempted a number of dplyr solutions and can't quite get the correlation example to work properly but have no issues getting an example using mean to work properly.

This works, to calculate mean by specified columns

```
MyMeanTest <- MyDataTest %>%
filter(MktDate >='2009-12-31') %>%
group_by(MktDate) %>%
summarize_at(c('RtnVol_EM','OCFROI_EM'),mean,na.rm=TRUE)

```

This does not work. essentially I want the correlation for the columns specified, grouped by MktDate with the column FwdRet\_12M. I get the following error message - 
Error in summarise\_impl(.data, dots) : 
 Evaluation error: not all arguments have the same length.

```
MyCorTest <- MyDataTest %>%
  group_by(MktDate) %>% 
summarize_at(c('RtnVol_EM','OCFROI_EM'),funs(cor(.,MyDataTest$FwdRet_12M,use="pairwise.complete.obs", "spearman")))

```

With the code example above I should end with something like this
MktDate,RtnVol\_EM,OCFROI\_EM...

Here is some sample code that should help to understand the structure of the data and end objective.

```
MyDataTest <- structure(list(MktDate = structure(c(17896, 17896, 17896, 17896, 
17927, 17927, 17927, 17927), class = "Date"), FwdRet = c(2, 3, 
4, 5, 5, 2, 1, 4), Fact1 = c(10, 30, 20, 15, 12, 25, 26, 28), 
    Fact2 = c(100, 500, 300, 400, 150, 400, 430, 420)), .Names = c("MktDate", 
"FwdRet", "Fact1", "Fact2"), row.names = c(NA, -8L), class = "data.frame")

```

When running the pairwise correlation grouped by date on that data set the following should be the result.

```
MktDate,Fact1,Fact2
12/31/18,.2,.4
1/31/19,.4,-.8

```