从R中的单列创建从到节点表

从R中的单列创建从到节点表,r,dataframe,relationship,igraph,R,Dataframe,Relationship,Igraph,我想制作一个网络图,表示数据库中表之间的连接。我有一个包含以下列的数据帧: 表名称 列名 列id 我不确定迭代dataframe以生成创建“column_name”相同(即column_id 1和7)的from-to列的边缘表的最佳方法。我的数据帧有1500多行 任何帮助或指导都将不胜感激 # Example dataframe with example values df <- as.data.frame(rbind( c("table_A", "col

我想制作一个网络图,表示数据库中表之间的连接。我有一个包含以下列的数据帧:

  • 表名称
  • 列名
  • 列id
我不确定迭代dataframe以生成创建“column_name”相同(即column_id 1和7)的from-to列的边缘表的最佳方法。我的数据帧有1500多行

任何帮助或指导都将不胜感激

# Example dataframe with example values
df <- as.data.frame(rbind(
c("table_A", "column1", 1),
c("table_A", "column3", 2),
c("table_A", "column5", 3),
c("table_B", "column3", 4),
c("table_B", "column5", 5),
c("table_B", "column6", 6),
c("table_C", "column1", 7),
c("table_D", "column3", 8),
c("table_D", "column5", 9),
c("table_E", "column1", 10),
c("table_E", "column6", 11)
))

colnames(df)[1] <- "table_name"
colnames(df)[2] <- "column_name"
colnames(df)[3] <- "column_id"
#带有示例值的示例数据帧
dfA基本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")
)
给予


谢谢,这真是太棒了……完全成功了,非常感谢!
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