1498 1

[问答] 共现矩阵数据转化 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

95%

还不是VIP/贵宾

-

威望
0
论坛币
136 个
通用积分
35.0424
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
680 点
帖子
33
精华
0
在线时间
369 小时
注册时间
2016-2-9
最后登录
2025-4-23

楼主
巫山小女隔云别5 发表于 2020-8-16 12:40:46 |AI写论文
20论坛币
请教一下大家R语言怎么把共现矩阵转化成三列(Source Target value),因为我的矩阵是对称的,所以应该只需要提取上三角或者下三角即可。具体是指:从第一张图转化为第二张图 1597552699(1).png 1597552726(1).png ,这里只列举了3*3的,实际数据会比较大。谢谢各位大佬解答。

最佳答案

llb_321 查看完整内容

我猜有专门的函数,但我没找到,只写个代码你参考一下吧
关键词:数据转化 Target Source value arge

本帖被以下文库推荐

沙发
llb_321 在职认证  发表于 2020-8-16 12:40:47
我猜有专门的函数,但我没找到,只写个代码你参考一下吧

  1. library(dplyr)
  2. library(matrixcalc)

  3. #示例矩阵
  4. A <- matrix(
  5.   c(0, 1, 2, 3, 4,
  6.     1, 0, 3, 4, 5,
  7.     2, 3, 0, 5, 1,
  8.     3, 4, 5, 0, 2,
  9.     4, 5, 1, 2, 0),
  10.   nrow = 5,
  11.   byrow = TRUE
  12. )

  13. a <- lower.triangle(A)  #取下三角

  14. rownames(a) <- letters[1:5]
  15. colnames(a) <- letters[1:5]

  16. res <-
  17.   data.frame(
  18.     source = rep(rownames(a), dim(a)[2]),
  19.     target = rep(colnames(a), each = dim(a)[1]),
  20.     value = vec(a)
  21.   ) %>%
  22.   filter(value != 0)
复制代码
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 06:18