首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-将邻接数据帧转换为边缘列表类型列表

R-将邻接数据帧转换为边缘列表类型列表
EN

Stack Overflow用户
提问于 2018-01-17 17:32:37
回答 2查看 895关注 0票数 1

我需要将具有命名的列和行(NxN维度)的数据框更改为边缘列表。

例如,数据帧中的矩阵为:

代码语言:javascript
复制
     C1  C2  C3  C4
Ane  0   1   31  0
Jol  4   14  2   0
Ruf  3   3   11  6 
Rei  1   7    0  0

我想将其更改为列表(类似于边缘列表):

代码语言:javascript
复制
Ane-C1  0
Ane-C2  1
Ane-C3  31
Ane-C4  0
Jol-C1  4
Jol-C2  14
Jol-C3  2
Jol-C4  0
Ruf-C1  3
Ruf-C2  3
Ruf-C3  11
Ruf-C4  6
Rei-C1  1
Rei-C2  7
Rei-C3  0
Rei-C4  0

我发现的其他线程似乎只有列名/数据帧不包含邻接矩阵。

我试着把它做成一个图形,然后get.edgelist,也尝试了[order(df,1,df1,),,drop=FALSE],但这些都没有给出我想要的结果。有人能教我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-17 17:35:16

base R中,复制行名和列名,对其执行paste操作,在此基础上创建一个data.frame以及矩阵的值

代码语言:javascript
复制
data.frame(name = paste(rownames(m1)[col(m1)], colnames(m1)[row(m1)], sep="-"),
          val = c(t(m1)), stringsAsFactors = FALSE)
#     name val
#1  Ane-C1   0
#2  Ane-C2   1
#3  Ane-C3  31
#4  Ane-C4   0
#5  Jol-C1   4
#6  Jol-C2  14
#7  Jol-C3   2
#8  Jol-C4   0
#9  Ruf-C1   3
#10 Ruf-C2   3
#11 Ruf-C3  11
#12 Ruf-C4   6
#13 Rei-C1   1
#14 Rei-C2   7
#15 Rei-C3   0
#16 Rei-C4   0
票数 2
EN

Stack Overflow用户

发布于 2018-01-17 18:08:52

这里有一个整齐的解决方案。使用gather将宽格式转换为长格式。然后,将这两列unite为一列。

代码语言:javascript
复制
library('tidyverse')

df <- data.frame(
  C1 = c(0, 4, 3, 1),
  C2 = c(1, 14, 3, 7),
  C3 = c(31, 2, 11, 0),
  C4 = c(0, 0, 4, 0),
  row.names = c('Ane', 'Jol', 'Ruf', 'Rei')
)

df %>%
  rownames_to_column %>%
  gather(key = 'key', value = 'value', -rowname) %>%
  unite('name', rowname, key, sep = '-')
#>      name value
#> 1  Ane-C1     0
#> 2  Jol-C1     4
#> 3  Ruf-C1     3
#> 4  Rei-C1     1
#> 5  Ane-C2     1
#> 6  Jol-C2    14
#> 7  Ruf-C2     3
#> 8  Rei-C2     7
#> 9  Ane-C3    31
#> 10 Jol-C3     2
#> 11 Ruf-C3    11
#> 12 Rei-C3     0
#> 13 Ane-C4     0
#> 14 Jol-C4     0
#> 15 Ruf-C4     4
#> 16 Rei-C4     0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48297723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档