[R-es] red SNA

javier.ruben.marcuzzi en gmail.com javier.ruben.marcuzzi en gmail.com
Mie Mar 6 04:43:14 CET 2013


Estimados

Le consulto porque estoy intentando presentar unos datos de alguna forma un 
poco distinta, salir un poco de la costumbre.

Primero describo los datos:
Suponiendo una secuencia:
golpe al auto -> torura de vidrio -> rotura de aciento
otro auto
golpe al auto -> -> rotura de aciento , a este por alguna causa no se le 
rompio el vidio o esa información es desconocida.

Esta información se encuentra en un data.frame (en el ejemplo siguiente ...)

La intención es hacer un diagrama con SNA (o parecido) donde en una red están 
las relaciones (me interesa esos gráficos donde los circulos tienen líneas que 
los conectas, técnicamente son nodos ...).

Tengo claro como es en los ejemplos de redes sociales, donde la relación es 
entre presonas que se conocen, pero yo tengo unas relaciónes que son más allá, 
como si se conocen y llevan el mismo tipo de ropa, o el mismo tipo de ropa 
pero no se conocen como en la red social.

Copio y pego un código donde explican la forma de preparar los datos para una 
red con SNA, luego yo modifico el data.frame del ejemplo agregando "yo", pero 
creo que este metodo es ineficiente o tiene errores.

Alguna sugerencia (me desconcierta sobre todo la última línea, algo huele 
mal):

# afiliancion para SNA

# http://www.stanford.edu/~messing/Affiliation%20Data.html
df <- data.frame( person = 
c('Sam','Sam','Sam','Greg','Tom','Tom','Tom','Mary','Mary'),
                  group = c('a','b','c','a','b','c','d','b','d'), 
                  stringsAsFactors = F)
df

m = table( df )
M = as.matrix( m ) 
# o M = as.matrix( table(df) ) 

Mrow = M %*% t(M) 
Mrow

Mcol = t(M) %*% M
Mcol

df_yo <- data.frame( person = 
c('Sam','Sam','Sam','Greg','Tom','Tom','Tom','Mary','Mary'),
                  group = c('a','b','c','a','b','c','d','b','d'), 
                  yo = c('a','b','','a','b','c','','','a'),   
                  stringsAsFactors = F)
df_yo
m_yo = table(df_yo)
m_yo
M_yo = as.matrix( m_yo )
M_yo
Mrow_yo = M_yo %*% t(M_yo) 
Mrow_yo

Mcol_yo = t(M_yo) %*% M_yo
Mcol_yo



Más información sobre la lista de distribución R-help-es