R中用户的邻接矩阵

R中用户的邻接矩阵,r,matrix,binary,igraph,adjacency-matrix,R,Matrix,Binary,Igraph,Adjacency Matrix,我有一个数据如下- user_id post_id 24376261 204506440 98461 204446324 98461 203026202 98461 203031838 311542 204351465 875740 203031838 此数据表示用户在网站文章/帖子中发表评论的帖子。 现在,我需要创建一个矩阵,在行和列中使用user_id,如果这些用户通过博客文章连接,则值将为1,否则为0。i、 e我想要的

我有一个数据如下-

user_id     post_id
24376261    204506440
98461       204446324
98461       203026202
98461       203031838
311542      204351465
875740      203031838
此数据表示用户在网站文章/帖子中发表评论的帖子。 现在,我需要创建一个矩阵,在行和列中使用user_id,如果这些用户通过博客文章连接,则值将为1,否则为0。i、 e我想要的输出将如下所示-

user       24376261 98461   311542  875740
24376261    1       0       0       0
98461       0       1       0       1
311542      0       0       1       0
875740      0       1       0       1
我在R怎么做?我试着从这个问题上遵循Brian的方法- 但我得到了一个如下类别的R对象-

> class(am)
[1] "dgCMatrix"
attr(,"package")

如何将其转换为data.frame或可导出到R的其他格式?

以下是一种获得所需输出的方法:

tcrossprod(table(mydf))
#           user_id
# user_id    98461 311542 875740 24376261
#   98461        3      0      1        0
#   311542       0      1      0        0
#   875740       1      0      1        0
#   24376261     0      0      0        1
(tcrossprod(table(mydf)) != 0) + 0
#           user_id
# user_id    98461 311542 875740 24376261
#   98461        1      0      1        0
#   311542       0      1      0        0
#   875740       1      0      1        0
#   24376261     0      0      0        1
如果希望将结果作为
data.frame
,可以将输出包装为
作为.data.frame.matrix


这是假设“mydf”定义为:

mydf <- structure(list(user_id = c(24376261L, 98461L, 98461L, 98461L, 
311542L, 875740L), post_id = c(204506440L, 204446324L, 203026202L, 
203031838L, 204351465L, 203031838L)), .Names = c("user_id", "post_id"), 
class = "data.frame", row.names = c(NA, -6L))

mydf抱歉,这与您的结果不一样。你能告诉我mydf表中有什么吗?@RHelp,你应该提供一个可复制的例子,而不是回答的人。尽管如此,我还是添加了一个更新,其中使用了“
mydf
”。我在问题中添加了我的数据。谢谢你的耐心。但这在我的数据集上不起作用。如果我尝试您的解决方案,我会在我的行和列中获得useri_id和post_id,并且填充矩阵的所有值在所有组合中都是1。@RHelp,您粘贴了数据的视图,而不是告诉我们数据结构的任何内容。使用
dput
以可复制的方式共享数据。