Я нов к R и у меня есть объект графа, который я создал из объекта фрейма данных «allTog», как показано ниже:R: Как пройти от корневого узла к каждому листовому узлу в объекте данных iGraph и получить путь?
library(igraph)
df.g <- graph.data.frame(d = allTog, directed = TRUE)
plot(df.g, vertex.label = V(df.g)$name)
Кадр данных allTog задается
allTog <- data.frame(
source = c("chamber", "chamber", "chamber", "chamber", "chamber",
"check", "check", "issue", "issue", "issue"),
target = c("check", "issue", "leak", "process", "found", "power",
"customer", "customer", "wafer", "replaced")
)
Столбцы «row.names» и «values» здесь не представляют интереса.
Как я могу переходить от каждого корневого узла, в данном случае к «камере», к каждому листовому узлу и получить путь к всем именам узлов (вершин)? Я ищу универсальное решение, потому что мой корневой узел может меняться при каждом запуске кода. Например, в следующем запуске корневой узел может быть «проблемным».
Мой вывод, который я хочу это:
chamber->check->power
chamber->issue->replaced
chamber->process
chamber->issue->customer
Так и так далее ....
Очень неясно, какой результат вы хотите. Вам действительно нужна трансверсаль? Не похоже, что вы говорите по узлам, собирающим любую информацию. Кроме того, как вы определяете корневой узел в каждом кластере? Является ли узел только входящими ссылками? Будет ли всегда один из них? Я просто хочу убедиться, что полностью понимаю ваши тестовые данные. Потому что вы просите пути от каждого листа к каждому корню, но сейчас все это ровно одно ребро. – MrFlick
Корневой узел определяется выпадающим меню пользователя в пользовательском интерфейсе Rshiny. Вот почему корневой узел может измениться. Всегда будет только один корневой узел. Например: в другом прогоне корневой узел может быть «вафельным». Я тоже отредактировал вопрос, возможно, это вызовет больше света. – user1452759