Eu tenho um quadro de dados como este:
df <- data.frame(char1=c('a', 'd', 'i', 'k', 'm', 'd', 'e', 'e', 'q', 'i','q', 'm','n','i'),
char2=c('b','a','a','g','n','b', 'o', 'g', 'p', 'b','g','b','k','d'),
value=c(0.8,0.6,0.6,0.5,0.5,0.4,0.3,0.2,0.1,0.1,0.4,-0.1,-0.2,-0.3))
Quero plotar uma rede na qual cada caractere é um nó e o valor entre cada nó e outro é representado por um link. Quanto maior o valor, mais próximo o link. E os nós que têm valores altos entre si, como o nó 'a', 'b' e 'd' podem ter um gráfico de cluster mostrando suas relações fortes.
Aqui vai um começo, com base nesta pergunta (eu exponenciei os valores de peso fornecidos porque acho que os pesos têm que ser positivos: você pode modificar isso se quiser)
Não está claro quais são suas outras opções para pesos negativos; até onde posso ver, não há opções de layout de igraph que permitam pesos negativos ; a maioria desses algoritmos assume que a força atrativa entre nós é proporcional à força de seus pesos (positivos). Pesos negativos poderiam, em princípio, permitir repulsão, mas não acho que isso seja implementado. Falando subjetivamente, não vejo problema em exponenciar; nós conectados por pesos negativos ainda estão mais distantes do que aqueles conectados por pesos positivos (já que a exponenciação mapeia pesos negativos para valores entre 0 e 1).