如何解决如何将此邻接矩阵转换为图形对象?
我有一个矩阵表示 CSV 上的社交互动数据,如下所示:
`0` `1` `2` `3` `4` `5` `6` `7` `8` `9`
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
0 0 29 1 0 1 9 3 0 1 4
1 1 0 0 1 3 1 0 1 1 1
2 1 1 0 13 4 0 1 1 15 0
3 3 0 1 0 1 1 7 1 1 1
4 1 0 1 98 0 1 1 1 1 2
5 2 5 1 1 3 0 2 0 1 5
6 1 1 0 0 12 1 0 2 1 1
7 1 1 0 1 0 1 9 0 1 2
8 1 1 17 13 145 1 39 1 0 1
9 88 23 1 5 1 2 1 7 1 0
我是社交网络分析的新手,所以我不确定我的术语,但这对我来说似乎是一个加权邻接矩阵,正如我们可以说的那样,学生 1 在过去与学生 0 进行了 29 次交互年。我将此对象作为数据帧存储在 RStudio 中,但是当我运行以下代码时,收到以下错误:
> fn <- graph_from_adjacency_matrix(output,weighted = T)
Error in mde(x) : 'list' object cannot be coerced to type 'double'
我尝试将其转换为矩阵,但这似乎也不起作用。任何有关这方面的帮助将不胜感激。
解决方法
您需要先将您的 data.frame
转换为 matrix
,然后应用 graph_from_adjacency_matrix
,例如,
g <- graph_from_adjacency_matrix(as.matrix(df),weighted = TRUE)
和 plot(g)
给予
数据
> dput(df)
structure(list(``0`` = c(0L,1L,3L,2L,88L),``1`` = c(29L,0L,5L,23L),``2`` = c(1L,17L,1L),``3`` = c(0L,13L,98L,5L),``4`` = c(1L,4L,12L,145L,``5`` = c(9L,2L),``6`` = c(3L,7L,9L,39L,1L
),``7`` = c(0L,7L),``8`` = c(1L,15L,``9`` = c(4L,0L)),class = "data.frame",row.names = c("0","1","2","3","4","5","6","7","8","9"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。