Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Dplyr在相关处的解决方案_R_Dplyr - Fatal编程技术网

R Dplyr在相关处的解决方案

R Dplyr在相关处的解决方案,r,dplyr,R,Dplyr,我试图通过(group_by)MktDate计算数据帧中所有列与另一列的相关性(安全返回) 我已经尝试了许多dplyr解决方案,但不能让相关示例正常工作,但在使用mean获得示例正常工作时没有问题 这项工作,以计算指定列的平均值 MyMeanTest <- MyDataTest %>% filter(MktDate >='2009-12-31') %>% group_by(MktDate) %>% summarize_at(c('RtnVol_EM','OCFROI

我试图通过(group_by)MktDate计算数据帧中所有列与另一列的相关性(安全返回)

我已经尝试了许多dplyr解决方案,但不能让相关示例正常工作,但在使用mean获得示例正常工作时没有问题

这项工作,以计算指定列的平均值

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

一种可能的方法是重新调整数据的形状,以便在一列中包含始终需要的相关变量(FwdRet),在另一列中包含更改的变量。像这样:

MyDataTest_reshape <- MyDataTest %>% 
  gather(factor, value, -MktDate, -FwdRet) 

MyDataTest_reshape

         MktDate FwdRet factor value
  1  2018-12-31      2  Fact1    10
  2  2018-12-31      3  Fact1    30
  3  2018-12-31      4  Fact1    20
  4  2018-12-31      5  Fact1    15
  5  2019-01-31      5  Fact1    12
  6  2019-01-31      2  Fact1    25
  7  2019-01-31      1  Fact1    26
  8  2019-01-31      4  Fact1    28
  9  2018-12-31      2  Fact2   100
  10 2018-12-31      3  Fact2   500
  11 2018-12-31      4  Fact2   300
  12 2018-12-31      5  Fact2   400
  13 2019-01-31      5  Fact2   150
  14 2019-01-31      2  Fact2   400
  15 2019-01-31      1  Fact2   430
  16 2019-01-31      4  Fact2   420

一种可能的方法是重新调整数据的形状,以便在一列中包含始终需要的相关变量(FwdRet),在另一列中包含更改的变量。像这样:

MyDataTest_reshape <- MyDataTest %>% 
  gather(factor, value, -MktDate, -FwdRet) 

MyDataTest_reshape

         MktDate FwdRet factor value
  1  2018-12-31      2  Fact1    10
  2  2018-12-31      3  Fact1    30
  3  2018-12-31      4  Fact1    20
  4  2018-12-31      5  Fact1    15
  5  2019-01-31      5  Fact1    12
  6  2019-01-31      2  Fact1    25
  7  2019-01-31      1  Fact1    26
  8  2019-01-31      4  Fact1    28
  9  2018-12-31      2  Fact2   100
  10 2018-12-31      3  Fact2   500
  11 2018-12-31      4  Fact2   300
  12 2018-12-31      5  Fact2   400
  13 2019-01-31      5  Fact2   150
  14 2019-01-31      2  Fact2   400
  15 2019-01-31      1  Fact2   430
  16 2019-01-31      4  Fact2   420
这对我有用

库(tidyverse)
MyDataTest%
分组依据(MktDate)%>%
总结(c(“事实1”,“事实2”),列表(~cor(,FwdRet,use=“pairwise.complete.obs”,“spearman”))
#>#tibble:2 x 3
#>MktDate Fact1 Fact2
#>         
#> 1 2018-12-31   0.2   0.4
#> 2 2019-01-31  -0.4  -0.8
这对我很有用

库(tidyverse)
MyDataTest%
分组依据(MktDate)%>%
总结(c(“事实1”,“事实2”),列表(~cor(,FwdRet,use=“pairwise.complete.obs”,“spearman”))
#>#tibble:2 x 3
#>MktDate Fact1 Fact2
#>         
#> 1 2018-12-31   0.2   0.4
#> 2 2019-01-31  -0.4  -0.8

它怎么不起作用?你收到错误信息了吗?意外结果?我用收到的错误消息更新了原始问题。今天晚些时候,我会尽量抽出时间发布一个可复制的示例。我还在原始文章的底部添加了一个示例,带有逗号分隔的最终结果和示例输入数据。它怎么不起作用?你收到错误信息了吗?意外结果?我用收到的错误消息更新了原始问题。今天晚些时候,我会尽量抽出时间发布一个可复制的示例。我还在原始文章的底部添加了一个示例,带有逗号分隔的最终结果和示例输入数据。这是一个极好的解决方案,具有创造性。我会把它保存在我的代码中,以备将来参考。非常感谢这是一个很好的解决方案和创意。我会把它保存在我的代码中,以备将来参考。非常感谢谢谢,杰克,这对我来说也很好。看起来我的思路是对的,但是我的语法有点不对劲。非常感谢,杰克,这对我来说也很好。看起来我的思路是对的,但我的语法有点不对劲。
MktDate,Fact1,Fact2
12/31/18,.2,.4
1/31/19,.4,-.8
MyDataTest_reshape <- MyDataTest %>% 
  gather(factor, value, -MktDate, -FwdRet) 

MyDataTest_reshape

         MktDate FwdRet factor value
  1  2018-12-31      2  Fact1    10
  2  2018-12-31      3  Fact1    30
  3  2018-12-31      4  Fact1    20
  4  2018-12-31      5  Fact1    15
  5  2019-01-31      5  Fact1    12
  6  2019-01-31      2  Fact1    25
  7  2019-01-31      1  Fact1    26
  8  2019-01-31      4  Fact1    28
  9  2018-12-31      2  Fact2   100
  10 2018-12-31      3  Fact2   500
  11 2018-12-31      4  Fact2   300
  12 2018-12-31      5  Fact2   400
  13 2019-01-31      5  Fact2   150
  14 2019-01-31      2  Fact2   400
  15 2019-01-31      1  Fact2   430
  16 2019-01-31      4  Fact2   420
MyDataTest_reshape %>%
  group_by(MktDate, factor) %>% 
  summarize(correlation = cor(FwdRet, value)) %>% 
  spread(factor, correlation)

# A tibble: 2 x 3
# Groups:   MktDate [2]
  MktDate      Fact1  Fact2
  <date>       <dbl>  <dbl>
1 2018-12-31  0.0756  0.529
2 2019-01-31 -0.627  -0.736
MyDataTest %>% 
gather(factor, value, -MktDate, -FwdRet) %>% 
group_by(MktDate, factor) %>% 
summarize(correlation = cor(FwdRet, value)) %>% 
spread(factor, correlation)