具有多个连接的二分组的关联矩阵

时间:2016-06-15 09:10:06

标签: r matrix graph adjacency-matrix bipartite

我想知道是否有一种快速的方法来获得这种问题的关联矩阵。我有两个数据框,有三列(连接键)

df1 <- data.frame(K1=c(1,1,0,1,3,2,2),K2=c(1,2,1,0,2,0,1),K3=c(0,0,3,2,1,3,0))
df2 <- data.frame(K1=c(1,2,0,3),K2=c(0,1,2,0),K3=c(2,0,3,1))

我需要获得相应的关联矩阵

# IM:
#   1 2 3 4
# 1 1 1 0 0
# 2 1 0 1 0
# 3 0 1 1 0
# 4 1 0 0 0
# 5 0 0 1 1
# 6 0 1 1 0
# 7 0 1 0 0

如果两个数据帧的行的相应1(列值)之间存在匹配,则设置为KEY。 我会通过使用多个循环

来做
for (j in seq_len(nrow(df2)))
  for (k in seq_len(ncol(df2))) {
    if (df2[j,k])
      m[which(df1[,k] == df2[j,k]),j] <- 1
  }

但这是一种C方法,也许在R中有更快的东西。你还有其他想法吗?此外,当data.frame相当大(大约50k和20k行)时,我无法分配矩阵,因为它看起来太大了。

0 个答案:

没有答案