我有一个时间序列面板数据集,其结构如下:
df <- data.frame(
year = c(2012L, 2013L, 2014L, 2012L, 2013L, 2014L),
id = c(1L, 1L, 1L, 2L, 2L, 2L),
c = c(11L, 13L, 13L, 16L, 15L, 15L)
)
#> year id c
#> 1 2012 1 11
#> 2 2013 1 13
#> 3 2014 1 13
#> 4 2012 2 16
#> 5 2013 2 15
#> 6 2014 2 15
我想在给定其ID号的C列中找到值之间的互相关 . 与此类似的东西:
#> 1 2
#> 1 1 0.8
#> 2 0.8 1
我一直在使用dplyr包来查找我的面板数据中两个变量之间的互相关,但出于某种原因,我不能在一个可靠的id分组中进行相互关联 .
2 回答
你是说像下面这样的东西?我使用reshape包根据你的id的值进行强制转换,然后使用baseR中的
cor()
函数 .所以@Henrik的评论更加简单和优雅,所以包括在这里 .
如果您已经在使用
tidyverse
工具,则应该尝试widyr .它的功能重新变宽,获得相关性,并再次给你一个整洁的数据框 .
(注意我稍微改变了样本数据以匹配akaDrHouse's答案 .