Estimado Javier, Me alegra que hayas avanzado con tu error. Te respondo a esto último. La función induced.subgraph() espera como segundo parámetro una lista de los IDs de los vértices, mientras que tú le estás pasando una lista de 'edges'. Prueba lo siguiente: c <- induced.subgraph(datos.network, which(V(datos.network)$name == 'Casa')) Si entendí bien todo, debería funcionar. Un saludo, *Luisfo Chiroque* /PhD Student | PhD Candidate IMDEA Networks Institute/ http://fourier.networks.imdea.org/people/~luis_nunez/ <http://fourier.networks.imdea.org/people/%7Eluis_nunez/> On 09/05/2016 07:08 PM, javier.ruben.marcuzzi en gmail.com wrote:> Estimados > > Encontré una solución, que no comprendo pero arregla uno de los problemas. > > En la preparación de datos tengo varias partes, al final realizo un cbind y luego un merge, esto da error, pero si realizo merge y luego cbind, no hay error (no se ?pierde eso que comenté en el correo anterior?). > > Luego igraph crea el grafo y el sub grafo que al graficar es correcto. > > Ahora, porqué esa diferencia, no tengo la menor idea. > > Solo queda el problema de > >> 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 > > Pero hay un avance, por lo menos regreso a la lógica de los libros, aunque me desconcierta el porqué esa diferencia al preparar el data.frame que luego es leído por igraph. En varios años con R y muchísimos errores, es lo primero que me sorprende sin entender nada. > > Javier Rubén Marcuzzi > > De: javier.ruben.marcuzzi en gmail.com > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]
javier.ruben.marcuzzi en gmail.com
2016-Sep-06 13:55 UTC
[R-es] igraph V a partir de E y subgrafos
Estimado Luisfo Gracias por la acotación, tendía que ver ese cambio, hora ¿el resultado sería el mismo al crear el subgrafo o hay una diferencia entre el subgrafo entre: subgraph.edges y induced.subgraph? Yo pienso que colocando correctamente los parámetros el resultado no debería ser distinto. Otra pregunta, hay una forma de colocar más de un filtro en lo siguiente: plot(subgraph.edges(datos.network, E(datos.network)[[inc(?Casa?)]])) a por ejemplo plot(subgraph.edges(datos.network, E(datos.network)[[inc('Casa') ++++ otro filtro +++]])) Porque me parece que tendré que filtrar y luego crear los grafos, no estoy dando justo con lo que necesito, me resulta muy fácil crear un montón de igraph(?.), pero me parece que sería ineficiente. Javier Rubén Marcuzzi De: Luisfo [[alternative HTML version deleted]]
Estimado Javier, Te respondo a esto rápidamente. Pienso como tú, que el resultado de /subgraph.edges/ e /induced.subgraph/ debería ser el mismo. No se me ocurre ahora mismo ningún caso donde no sea así. Sin embargo,/subgraph.edges/ tiene un tercer parámetro opcional por si quieres conservar los vértices, a pesar de que desaparezcan todas sus aristas. Para colocar más de un filtro en la 'query' de edges, se pueden concatenar con comas ( , ), haciendo la función de ORs. Ejemplo: plot(subgraph.edges(datos.network, E(datos.network)[[inc('Casa'), inc('otro filtro'), ... ]])) Un saludo, *Luisfo Chiroque* /PhD Student | PhD Candidate IMDEA Networks Institute/ http://fourier.networks.imdea.org/people/~luis_nunez/ <http://fourier.networks.imdea.org/people/%7Eluis_nunez/> On 09/06/2016 03:55 PM, javier.ruben.marcuzzi en gmail.com wrote:> > Estimado Luisfo > > Gracias por la acotación, tendía que ver ese cambio, hora ¿el > resultado sería el mismo al crear el subgrafo o hay una diferencia > entre el subgrafo entre: subgraph.edges y induced.subgraph? Yo pienso > que colocando correctamente los parámetros el resultado no debería ser > distinto. > > Otra pregunta, hay una forma de colocar más de un filtro en lo siguiente: > > plot(subgraph.edges(datos.network, E(datos.network)[[inc(?Casa?)]])) > > a por ejemplo > > plot(subgraph.edges(datos.network, E(datos.network)[[inc('Casa') > ++++ otro filtro +++]])) > > Porque me parece que tendré que filtrar y luego crear los grafos, no > estoy dando justo con lo que necesito, me resulta muy fácil crear un > montón de igraph(?.), pero me parece que sería ineficiente. > > Javier Rubén Marcuzzi > > *De: *Luisfo <mailto:luisfo89 en yahoo.es> > *Enviado: *martes, 6 de septiembre de 2016 8:57 > *Para: *javier.ruben.marcuzzi en gmail.com > <mailto:javier.ruben.marcuzzi en gmail.com>; R-help-es en r-project.org > <mailto:R-help-es en r-project.org> > *Asunto: *Re: [R-es] igraph V a partir de E y subgrafos > > Estimado Javier, > > Me alegra que hayas avanzado con tu error. > > Te respondo a esto último. > La función induced.subgraph() espera como segundo parámetro una lista > de los IDs de los vértices, mientras que tú le estás pasando una lista > de 'edges'. > > Prueba lo siguiente: > > c <- induced.subgraph(datos.network, which(V(datos.network)$name == > 'Casa')) > > Si entendí bien todo, debería funcionar. > > Un saludo, > > *Luisfo Chiroque* > /PhD Student | PhD Candidate > IMDEA Networks Institute/ > http://fourier.networks.imdea.org/people/~luis_nunez/ > <http://fourier.networks.imdea.org/people/%7Eluis_nunez/> > > On 09/05/2016 07:08 PM, javier.ruben.marcuzzi en gmail.com > <mailto:javier.ruben.marcuzzi en gmail.com> wrote: > > Estimados > > Encontré una solución, que no comprendo pero arregla uno de los problemas. > > En la preparación de datos tengo varias partes, al final realizo un cbind y luego un merge, esto da error, pero si realizo merge y luego cbind, no hay error (no se ?pierde eso que comenté en el correo anterior?). > > Luego igraph crea el grafo y el sub grafo que al graficar es correcto. > > Ahora, porqué esa diferencia, no tengo la menor idea. > > Solo queda el problema de > > 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 > > > > Pero hay un avance, por lo menos regreso a la lógica de los libros, aunque me desconcierta el porqué esa diferencia al preparar el data.frame que luego es leído por igraph. En varios años con R y muchísimos errores, es lo primero que me sorprende sin entender nada. > > Javier Rubén Marcuzzi > > De:javier.ruben.marcuzzi en gmail.com > <mailto:javier.ruben.marcuzzi en gmail.com> > > [[alternative HTML version deleted]] > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]