2016-03-25 6 views
0

ich eine relationale Tabelle, die eine Liste von Beziehungen enthält:Beziehung zwischen zwei Parteien aus der Beziehungstabelle unter Verwendung von R

Party_A  Party_B 
a   b 
c   a 
d   b 
b   e 
... 

Sie dieser Tabelle denken kann, enthält die Information von (Regie: Richtung von Partner_A zu Party_B) Kanten in einem Graphen.

Ich möchte einige Pakete, die diese Tabelle in ein Diagrammmodell konvertieren können, das die folgende Abfrage unterstützt: Finden Sie zwei Parteien, die einander am ähnlichsten sind, wobei Ähnlichkeit mit den häufigsten Eingabekanten definiert ist.

Irgendwelche Pakete in R, die mir dabei helfen können? Vielen Dank.

+0

Sie können 'Bibliothek (igigraph)' überprüfen – akrun

Antwort

0

Hier ist eine Art und Weise Sie es Ansatz könnte (mit Jaccard distance):

df <- read.table(header=T, text="source  target 
a   b 
c   b 
a   e 
c   e 
f   g 
h   i 
a   i 
c   i") 
library(igraph) 
g <- graph_from_data_frame(df) 
m <- t(as_adjacency_matrix(g, sparse = F)) 
d <- dist(m[rowSums(m)>0, ], method = "binary") 

dm <- as.matrix(d); dm[upper.tri(dm, T)] <- NA 
idx <- which(dm == min(dm, na.rm=T), T) 
cbind(rownames(dm)[idx[, "row"]], colnames(dm)[idx[, "col"]]) 
#  [,1] [,2] 
# [1,] "e" "b" 

Um die Entfernungen in einem Dendrogramm zu visualisieren:

hc <- hclust(d) 
plot(hc) 

enter image description here

Stellen Sie den Abstand messen auf Ihre Bedürfnisse .

Verwandte Themen