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!!!!!!!