如何解决从 R 中的单列创建到节点表
我想制作一个网络图来表示数据库中表之间的连接。我有一个包含以下列的数据框:
- 表名
- 列名称
- column_id
我不确定迭代数据框以生成边缘表的最佳方法,该表创建从 - 到“column_name”相同的列(即 column_id 1 & 7)。我的数据框有 1,500 多行。
任何帮助或指导将不胜感激。
# Example dataframe with example values
df <- as.data.frame(rbind(
c("table_A","column1",1),c("table_A","column3",2),"column5",3),c("table_B",4),5),"column6",6),c("table_C",7),c("table_D",8),9),c("table_E",10),11)
))
colnames(df)[1] <- "table_name"
colnames(df)[2] <- "column_name"
colnames(df)[3] <- "column_id"
# Example desired output using column_id
edges <- as.data.frame(rbind(
c(1,c(1,c(7,c(2,c(4,c(3,c(5,c(6,11)
))
colnames(edges)[1] <- "from"
colnames(edges)[2] <- "to"
解决方法
基本的 R 选项
setNames(
do.call(
rbind,aggregate(
column_id ~ column_name,df,function(x) list(data.frame(t(combn(x,2))))
)$column_id
),c("From","To")
)
给予
From To
1 1 7
2 1 10
3 7 10
4 2 4
5 2 8
6 4 8
7 3 5
8 3 9
9 5 9
10 6 11
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。