【发布时间】:2016-05-03 16:08:51
【问题描述】:
我想创建一个矩阵来指示来自数据框的组成员身份。例如,一个 NxN 矩阵,其中 1 表示一个社区与另一个社区在同一个城市内,0 表示这些社区属于不同城市的一部分。例如:
hoodid <- c(1:10)
cityid <- c(1, 1, 1, 2, 2, 3, 3, 3, 3, 3)
df <- data.frame(hoodid, cityid)
df
# hoodid cityid
# 1 1 1
# 2 2 1
# 3 3 1
# 4 4 2
# 5 5 2
# 6 6 3
# 7 7 3
# 8 8 3
# 9 9 3
# 10 10 3
期望的结果是:
# 0 1 1 0 0 0 0 0 0 0
# 1 0 1 0 0 0 0 0 0 0
# 1 1 0 0 0 0 0 0 0 0
# 0 0 0 0 1 0 0 0 0 0
# 0 0 0 1 0 0 0 0 0 0
# 0 0 0 0 0 0 1 1 1 1
# 0 0 0 0 0 1 0 1 1 1
# 0 0 0 0 0 1 1 0 1 1
# 0 0 0 0 0 1 1 1 0 1
# 0 0 0 0 0 1 1 1 1 0
【问题讨论】:
-
你可能对 igraph 包感兴趣,专为这类事情设计
-
您能否提供更多线索来说明 igraph 的哪个部分会有所帮助?
-
from_adjacency会将您的邻接矩阵转换为图形。从那里,您可以利用通常用于分析此类数据的图形算法。 -
我也会调查的。感谢弗兰克的帮助。
-
您可能会发现this post 也很有帮助;
tcrossprod(table(df))