correlation using aggregate function

Hi All,
How can I proceed to estimate the correlation of 4 variables( cor(a,b) and cor(c,d) ) for each month?
I prefer to use aggregate and I tried the code below. variables are not able to recognize x and y.
I would be glad if you can suggest it.


date=seq(as.Date("2020/1/1"), as.Date("2020/5/1"), "days")
dat <- data.frame(date,a,b,c,d)
dat$month=format(as.Date(dat$date, format="%Y-%m-%d"),"%m")

 aggregate( cbind(c(a,b),c(c,d))~ month, dat,  cor)

I am expecting the following output

Month cor(a,b), cor(c,d)
1        aa        bb
2        cc        dd
3        ee        ff
4        gg        hh
5        ii        jj
         ,month) %>% 

Hi @nirgrahamuk, I'm not sure why I am not able to get for each month ? Can you please check again.

this is the output..

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 5 x 3
  month  cor_ab  cor_cd
  <chr>   <dbl>   <dbl>
1 01     0.0627 -0.278 
2 02    -0.267   0.0931
3 03    -0.0267 -0.116 
4 04    -0.257  -0.0402
5 05    NA      NA
1 Like

@nirgrahamuk, my system shows only a single value while using such a code of summarise.
So, I tried with another code just to check my result why showing only one output.
Could you get explain why is this happening to me?
Thanks agian


> group_by(dat,month) %>% 
+   summarise(cor_ab=cor(a,b),
+             cor_cd=cor(c,d))
     cor_ab      cor_cd
1 0.0517008 -0.09864212

another code that showed one output.

> library(dplyr)
> mtcars %>%
+   group_by(am) %>% 
+   summarise(mpg = sum(mpg))
1 642.9

perhaps your R session is in a bad state and you should restart it...(Ctrl+Shift+F10)

mtcars %>%
     group_by(am) %>% 
     summarise(mpg = sum(mpg))

`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 2 x 2
am   mpg
<dbl> <dbl>
1     0  326.
2     1  317.
1 Like

Yes, I got it after detachment of dplyr.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.