Re: [R-es] R igraph

2016-04-13 Por tema Javier Marcuzzi
Estimados

Hace unos días por sugerencia de Luisfo Chiroque, utilicé esta opción:

datos.simple <- simplify(udatos, edge.attr.comb = list(weight="sum”))

Se me ocurrió mirar el “weight” para conocer cuándo daba la suma, para hacerlo 
fácil dentro de un data.frame de la siguiente forma: 
head(get.data.frame(udatos.simple))
from to Descripcion B weight  structure(c("1", "1", 
"1", "1", "1", "1"), class = "AsIs")
1 Ficha 1022 Mes 10  NULL   NULL NULL   
 
Warning message:
In format.data.frame(x, digits = digits, na.encode = FALSE) :
  corrupt data frame: columns will be truncated or padded with NAs

  1
Y encontré este problema (la parte que leen en rojo).

Me llama la atención porque al resto de los procesos R los trabajo sin 
problemas, hasta hice el gráfico. Pero como en este último veo algunos nodos 
que tienen un tamaño grande respecto a otros se me pensé en mirar el data.frame 
con los pesos, ordenarlos de mayor a menor, y analizar que pasa por esa 
diferencias que observo en el gráfico.

¿Alguna sugerencia?

Otra cosa que me llama la atención es lo siguiente: 

De algunos ejemplos …

# Collapse multiple links of the same type between the same two nodes
# by summing their weights, using aggregate() by "from", "to", & "type":
links <- aggregate(links[,3], links[,-3], sum)
links <- links[order(links$from, links$to),]
colnames(links)[4] <- "weight"
rownames(links) <- NULL

Versus
# g4 has two edges going from Jim to Jack, and a loop from John to himself.
# We can simplify our graph to remove loops & multiple edges between the same 
nodes.
# Use 'edge.attr.comb' to indicate how edge attributes are to be combined - 
possible 
# options include "sum", "mean", "prod" (product), min, max, first/last 
(selects 
# the first/last edge's attribute). Option "ignore" says the attribute should 
be 
# disregarded and dropped.

g4s <- simplify( g4, remove.multiple = T, remove.loops = F, 
 edge.attr.comb=list(weight="sum", type="ignore") )

Algunos sugieren  aggregate, porque dicen que simplify podría tomar deciciónes, 
por decirlo de alguna forma, pero la opción de aggregate en mis pruebas me 
“confunde” en los resultados que obtengo. Entiendo que de la columna tercera, 
cuándo hay un elemento repetido, lo sume, luego descarto este valor (el de la 
columna tercera) quedando solo la suma calculada. Lo que en mi cabeza, 
mentalmente es como simplify, de la columna deseada aplique la función suma, 
resumiendo.

¿Habré comprendido bien?

Javier Rubén Marcuzzi

De: Javier Marcuzzi
Enviado: viernes, 1 de abril de 2016 12:56
Para: Luisfo Chiroque
CC: r-help-es@r-project.org
Asunto: Re: [R-es] R igraph

Estimado Luisfo Chiroque

Muchas, gracias, creo que lo entendí, en estos momentos no puedo probarlo como 
para decir "ya está". 

Para comentarle, desconozco si fastgreedy es la función que necesito, pero como 
mi objetivo es realizar un gráfico donde agrupo elementos que están 
relacionados, tendré mucha prueba y error hasta que encuentre una forma 
entendible visualmente para los no estadísticos, y con números estadísticos que 
avalen esas relaciones y agrupaciones.

Muchas gracias

Javier Rubén Marcuzzi

El 1 de abril de 2016, 10:03, Luisfo Chiroque  escribió:
Estimado Javier,

El problema de simplify es que no sabe cómo mezclar las aristas a no ser que se 
lo indiques explícitamente.
No sé si por defecto se quedará con la primera o la última arista.
En cualquier caso, como parece que para tu objetivo esto es algo crítico, tiene 
remedio.
Tú sólo quieres calcular fastgreedey.community pero teniendo en cuenta si 
existen más de una arista entre dos nodos. Esta función tiene en cuenta los 
pesos si existe una variable ‘weight’.
1) Añade una variable weight a tu grafo, a todas las aristas, con peso 1
E(udatos)$weight <- 1
2) Simplifica el grafo. Por defecto, simplify suma las variables weight, si 
existen.
udatos.simple <- simplify(udatos, edge.attr.comb = list(weight="sum”))
Pero puedes añadir la función que quieras:
udatos.simple <- simplify(udatos, edge.attr.comb = list(weight=function(w) {1 / 
sum(w)} ))
Dependiendo de si quieres dar un efecto positivo o negativo al hecho de que 
hayan más de una arista entre dos nodos.
De igual forma, podrías añadir funciones específicas para que simplify sepa 
cómo combinar atributos de aristas repetidas:
udatos.simple <- simplify(udatos, edge.attr.comb = list(weight="sum", 
"Descripcion A"=function(descr) {…}, “DescripcionB"=function(descr) {...}))
3) Ejecutas fastgreedy.community
fastgreedy.community(udatos.simple)
Si tuvieras que usar una relación de pesos más compleja, siempre la puedes 
indicar explícitamente en la función:
fastgreedy.community(udatos.simple, weights = weights.vector)
donde weights.vector es es un vector de valores, de tamaño 
ecount(udatos.simple); un valor por arista.

Espero que esto te sea de ayuda y solucione tu problema.

Un 

Re: [R-es] R y Excel - paquete openxlsx

2016-04-13 Por tema Francisco Rodríguez
Muchas gracias Isidro, para mi es de interes
Un saludo

From: ihida...@jccm.es
To: r-help-es@r-project.org
Date: Wed, 13 Apr 2016 16:58:36 +0200
Subject: [R-es] R y Excel - paquete openxlsx

Buenas tardes.
 
Alguna vez alguien ha preguntado por aqu� acerca de la conexi�n entre R y
Excel, y he recomendado el paquete "XLConnect".
 
Bien, este mail es para recomendar el paquete "openxlsx" en su lugar.
 
"XLConnect" est� basado en java y, cuando he tenido que trabajar con
vol�menes de informaci�n considerables, o con numerosos ficheros Excel, no
he conseguido cargar los datos. Por lo que he le�do, la culpa no es de R,
sino de la gesti�n de memoria de Java. Es posible incrementar los l�mites de
memoria en Java, pero no ha sido efectivo en mi caso.
 
"openxlsx" est� basado en C++ (depende del paquete Rcpp), no tiene problemas
de memoria (hasta donde lo he comprobado), es m�s r�pido y el c�digo
necesario para leer ficheros Excel, pero sobre todo para escribir en ellos,
es m�s sencillo.
 
La �nica "pega" es que hay que instalar RTools, pero como �ste se utiliza
para otras cosas, en el fondo matas dos p�jaros de un tiro.
 
Por si es de inter�s para alguien�
 
Saludos
 
 
 
Isidro Hidalgo Arellano
 
Observatorio del Mercado de Trabajo
 
Consejer�a de Econom�a, Empresas y Empleo
 
  http://www.castillalamancha.es/
 
 
 
 
 
 
[[alternative HTML version deleted]]
 

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es 
  
[[alternative HTML version deleted]]

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

[R-es] R y Excel - paquete openxlsx

2016-04-13 Por tema Isidro Hidalgo Arellano
Buenas tardes.

Alguna vez alguien ha preguntado por aqu� acerca de la conexi�n entre R y
Excel, y he recomendado el paquete "XLConnect".

Bien, este mail es para recomendar el paquete "openxlsx" en su lugar.

"XLConnect" est� basado en java y, cuando he tenido que trabajar con
vol�menes de informaci�n considerables, o con numerosos ficheros Excel, no
he conseguido cargar los datos. Por lo que he le�do, la culpa no es de R,
sino de la gesti�n de memoria de Java. Es posible incrementar los l�mites de
memoria en Java, pero no ha sido efectivo en mi caso.

"openxlsx" est� basado en C++ (depende del paquete Rcpp), no tiene problemas
de memoria (hasta donde lo he comprobado), es m�s r�pido y el c�digo
necesario para leer ficheros Excel, pero sobre todo para escribir en ellos,
es m�s sencillo.

La �nica "pega" es que hay que instalar RTools, pero como �ste se utiliza
para otras cosas, en el fondo matas dos p�jaros de un tiro.

Por si es de inter�s para alguien�

Saludos

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejer�a de Econom�a, Empresas y Empleo

  http://www.castillalamancha.es/

 

 


[[alternative HTML version deleted]]

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