R Направленный ацикличный граф из матрицы инцидентности

Есть ли уже написанная функция, которая по матрице инцидентности выдаст граф? В пакете igraph функция graph_from_incidence_matrix выдает мне по матрице двудольный граф.Мне не подходит. Если функции нет, то такой вопрос. Как мне сгенерировать матрицу и нарисовать граф? Вот как я делаю, но ничего нормального не выходит. (генерируем матрицу, в которой N вершин и M ребер.Столбцы - это ребра, строки - это вершины. Мы сами задаем количество вершин и ребер. Подразумевалось, что dev - это степень вершины, но в матрице это пока никак не учитывается. Dev тоже сами задаем)

A<-matrix(,nrow=N,ncol=M)
A[1,]<-sample(1,dev,replace = T)
for(j in ((dev+1):M))
{
  A[1,j]<-0
}
for(i in (2:N))
{
for(j in (1:M))
{
  A[i,j]<-sample(-1:1,1)
}
}
View(A)

(обнуление повторных единичек и минус единичек. Если в столбце две единицы или минус единицы, то все плохо. Получается, что из разных вершин выходит(или входит) одно и то же ребро)

for(j in 1:M)
{ k<-2
while (k!=(N+1))#for visiting the last row
{
  if (A[k,j] == 1)
  {
    A[k,j]<-0
  }
  if (A[k,j]==(-1))
  {
    c<-k+1
    while(c!=(N+1))
    {
      A[c,j]<-0
      c<-c+1
    }
  }
  k<-k+1
}
}

Короче говоря, help!!!!!!!


Ответы (0 шт):