#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()
функции.