r - 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。
解决方案
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()
推荐阅读
- c# - 使用正则表达式格式化字符串
- numpy - numpy - 最小子数组
- powershell - import-csv 和 foreach 的问题
- dns - 当底层域发生变化时,如何使用 Intersphinx 链接文档?
- jquery - 在图像加载时保持滚动位置
- vuetify.js - Laravel 和 VueJs(Vuetify) 错误:MethodNotAllowedHttpException
- c++ - C++:将控制台输出存储在宏中更好吗?
- azure - Arm 模板验证通过 Azure Devops 版本失败,适用于 powershell 和 test-AzResourceGroupDeployment
- javascript - 将 JSON 从 URL 格式化为 HTML
- outlook - Office 365 Outlook 加密不起作用