Печать кликов с использованием библиотеки R igraph

#r #printing #igraph #clique

#r #печать #igraph #клик

Вопрос:

Я хочу распечатать клики для графика, используя igraph из пакета R. Формат данных, которые я хочу распечатать как A B C (отображение этих данных в формате Res1, Res2, Res3 …)

Данные: Res1 Res2 Вес A B 10 A C 1 C B 10 S B 1 L A 2

 library(igraph)
file <- read.table("GraphDemo.net", header=TRUE)
graph <- graph.data.frame(file,  directed=F)
Cliq <- cliques(graph, min = 3, max = NULL)
  

Если мы хотим распечатать клик на терминале

Cliq

[[1]] 3/5 вершин с именами: [1] A C B

Все это очень хорошо. Но если мы хотим распечатать в файл:

 write.table(t(Cliq), file="demo.dat",sep = "t",quote=F,row.names = FALSE)
  

Но результат из файла:
V1
c(1, 2, 5)

Я хочу печатать данные только как имена узлов A B C. Какой выход, ребята ..!!

Ответ №1:

Используется as_ids() для преобразования объекта igraph.vs в вектор имен. Вы можете скомпилировать их в список и экспортировать по своему усмотрению.

Попробуйте:

 g <- erdos.renyi.game(10,0.5,type="gnp",directed=F)
cliq<-cliques(g,min=3)
V(g)$name <- c("a","b", "c","d","e","f","g","h","i","j")
#Here's the function that will get the vertex names
names <- lapply(1:length(cliq), function(x) as_ids(cliq[[x]]))
  

Теперь это извлекает все клики. Если вас интересует только клик размером 3, например, вы можете ограничить это с помощью cliques() вызова или lapply() функции.