首页 > 解决方案 > r 的 ID 组合的汇总矩阵

问题描述

我有一个像这样的df(测试)

在此处输入图像描述

现在,如果您查看数据,第二个时期有 6 到 10 个组合可用,但在第一个时期没有。因此,当我使用此代码时

a_summary <- test %>%
  group_by(from, to) %>%
  summarize(avg = mean(share, na.rm = T)) %>%
  ungroup() %>%
  spread(from, avg, fill = 0)

输出是这样的 在此处输入图像描述

现在,看看 10 到 6 单元格。它给出的值为 1,因为 10 到 6 个组合只存在一次。但是当我做平均时,我想考虑每个时期的所有组合。因此 10 到 6 个单元格的预期结果是 0.5,整个矩阵列和行总和应该是 1。

标签: rmatrix

解决方案


a_summary <- test %>%
group_by(from, to) %>%
summarize(count = sum(n, na.rm = T)) %>%
ungroup() %>%
spread(from, count, fill = 0)

这将为您提供所有组合的所有计数。现在您可以通过除以sum(test$n)或使用来规范化这个矩阵prop.table()


推荐阅读