R 从事件列表计算协方差矩阵

R 从事件列表计算协方差矩阵,r,covariance,R,Covariance,我有以下数据框: # my_data id cg 1 a 2 b 3 a 3 b 4 b 4 c 5 b 5 c 5 d 6 d 我想计算cg值的协方差。我相信我可以通过在下面的矩阵中使用cov()来获得它,其中每个单元格计算cg两个值之间的共现次数 # my_matrix cg a b c d a 2 1 0 0 b 1 4 2 1 c 0 2 2 1 d 0 1 1 2 从my_data到my_ma

我有以下数据框:

# my_data
id  cg
1   a
2   b
3   a
3   b
4   b
4   c
5   b
5   c
5   d
6   d
我想计算
cg
值的协方差。我相信我可以通过在下面的矩阵中使用
cov()
来获得它,其中每个单元格计算
cg
两个值之间的共现次数

# my_matrix
cg  a  b  c  d
a   2  1  0  0
b   1  4  2  1
c   0  2  2  1
d   0  1  1  2
my_data
my_matrix
的最快方式是什么?请注意,
cg
包含700多个唯一值

如果有更好的方法生成协方差矩阵,我也对此感兴趣

以下是生成my_数据的代码:

my_data <- structure(list(id = c(1L, 2L, 3L, 3L, 4L, 4L, 5L, 5L, 5L, 6L),
                          cg = c("a", "b", "a", "b", "b", "c", "b", "c", "d", "d")),
                     .Names = c("id", "cg"),
                     class = "data.frame", row.names = c(NA, -10L))

my_data我们可以将
crossprod
table

crossprod(table(my_data))
#    cg
#cg  a b c d
#  a 2 1 0 0
#  b 1 4 2 1
#  c 0 2 2 1
#  d 0 1 1 2

我准备了一个解决方案,并将其发布在dupe链接上,因为它在您的解决方案生效之前就被删除了。非常感谢。但我现在对原始问题进行了编辑,使得此解决方案不再适用。@Michele请将其作为新问题发布,因为答案基于您的原始帖子。好的。新问题在这里:@Michele谢谢,我会查出来的