Estimados

Tengo un problema. Con igraph creo una red a partir de un data.frame, las dos 
primeras columnas son V y las restantes E. Hay un trabajo anterior, yo me 
pregunté ¿Qué pasaría si las cosas hablaran entre ellas?, entonces hay un cruce 
de información de todos contra todos y elimino los nulos y duplicados. Al ver 
los listados E, V tienen la información. Hasta ahí estaría todo bien (me 
interesa puntos o cosas que aporten información, no la información).

Ahora donde comienzan las complicaciones, conociendo una palabra (cosa) que 
está en E, quiero tener los V que la contienen. Ej, la relación A—B dentro de 
sus cosas tienen “casa”, yo quiero un grafo con todos los V que tengan “casa”.

Tengo tres alternativas:

Buscar a partir del índice que tiene la palabra “Casa”
idx <- match("Casa", V(datos.network)$name)
res <- E(datos.network) [ from(idx) ] 

Pero esta forma no me gusta, porque idx 160 (resultado real) al ser reemplazado 
en from(idx) por from(160) da un resultado errado. Str(res) me resulta un poco 
“feo”.

La siguiente forma me es mucho más agradable a la vista
> a <- E(datos.network)[[inc(‘Casa’)]]
Los veo como un data.frame, correcto, varias columnas, una por cada categoría 
de E y su palabra correspondiente. Pero plot(a) no grafica una red. No lo es. 
> b <- subgraph.edges(datos.network, E(datos.network)[[inc('Casa')]])
Lo mismo, pero ahora es una red, lo grafico y me doy cuenta que faltan cosas, 
detecta el V que tiene el E, pero no toma ningún E de ese V que no coincida la 
palabra, en otra forma, A—B en la columna habitad tienen ‘Casa’ y en la columna 
transporte tienen ‘Bicicleta’, bueno, no aparece nada de la información de esta 
última. Me interesa por ejemplo para colocar un color según el transporte.
> c <- induced.subgraph(datos.network, E(datos.network)[[inc('Casa')]])
Error in .Call("R_igraph_induced_subgraph", graph, vids - 1, impl, PACKAGE = 
"igraph") : 
  At iterators.c:759 : Cannot create iterator, invalid vertex id, Invalid 
vertex id
La última forma que se me ocurrió me da un error que comparto.

Lo siguiente 
jj <-datos.network - E(datos.network)[E(datos.network)$habitad !="Casa"]
Funciona correcto, pero al graficarlo crea una cantidad muy grande de puntos 
con unos pocos señalados (exagerando, como si en una galaxia marco el sistema 
solar). Todos los V quedan en el gráfico con un valor de 0 creo, se ven, no 
quiero que estén presentes, por eso si a todos les resto todos los que no son 
solo me quedan los que son, pero en el gráfico aparecen todos los puntos, solo 
marcados los que son.

No es nada reproducible y posiblemente poco entendible, pero ¿alguien puede 
aportar un comentario a mi desorden?

Desde ya, muchas gracias.

Javier Rubén Marcuzzi


        [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Reply via email to