library(rtweet) # EXTRACCIÓN DE TWEETS
library(tidyverse) # MANIPULACIÓN Y REPRESENTACIÓN DE DATOS
library(igraph) # CREACIÓN DE GRAFOS
library(ggraph) # REPRESENTACIÓN DE GRAFOS
library(twinetverse) # CREACIÓN (graphTweets) GRAFOS DE TWITTER, REPRESENTACIÓN GRAFOS (sigmajs)
## -- Attaching twinetverse ---------------------------------- twinetverse 0.0.2 --
library(hrbrthemes) # TIPOGRAFIA DE GRÁFICOS
library(flextable) # REPRESENTACIÓN DE TABLAS
library(RColorBrewer)# PALETAS DE COLORES
library(readxl) # IMPORTACIÓN EXPORTACIÓN DE DATOS EXCEL
El presente documento contiene mis notas prepararoria para un trabajo de análisis de redes sociales sobre las percepciones de la población alrededor de la cuestión de las personas refugiadas. El trabajo globales debería consistir de 3 líneas: una encuesta sobre una muestra aleatoria de la población, unos grupos focales dirigidos a expertos en dicha temática y, precisamente, un análisis de redes sociales, del que estas notas representan un documento preparatorio.
La movilidad humana (80 millones de personas), en particular la forzosa por conflictos y crisis humanitarias hace que la población huya de sus países en búsqueda de protección internacional. Hoy son 26 millones de personas refugiadas, cifra sin precedentes.
En los países receptores este fenómeno genera opiniones y sentimientos a menudo discordantes, y despierta debates encendidos. El sentimiento de rechazo hacia la acogida de los refugiados, parece crecer. Las organizaciones que trabajan en la protección de los refugiados y las instituciones de los países de acogida tienen cada vez más interés en conocer las opiniones, como se generan y cómo circulan en la sociedad.
Las técnicas que analizan los fenómenos humanos son cada vez más refinadas y variadas en función no sólo de los nuevos instrumentos de análisis que ofrecen las tecnologías de la información, sino también de los nuevos medios y patrones de comunicación que tenemos los humanos.
Cada vez más, para conocer mejor qué pensamos y cómo lo comunicamos los instrumentos cuali-cauntitativos tradicionales pueden complementarse con otros que pueden añadir nuevas perspectivas de análisis y de interpretación de los datos.
El análisis de redes sociales que ya representaba un recurso importante, ha tomado un impulso aún más importante con la mejora de las capacidades de computación y la introducción de algoritmos más eficientes.
El propósito de este análisis será descubrir como se relacionan los usuarios en esta discusión; descubrir si forman grupos basados en su opinión; cómo se diferencian los niveles de popularidad, por ejemplo, en términos del número de seguidores, o de seguidores de seguidores.
Siendo un trabajo preparatorio y, no hay que esconderlo, debida mi relativa inexperiencia en el tema, he optado centrar el trabajo en una red social: Twtter. Su popularidad y eficacia en vehicular ideas y opiniones son aspectos que han pesado en orientarnos, pero también la eficacia de su API (Interfaz de Programación de Aplicaciones) en facilitar el acceso a los datos por parte de los desarrolladores es otro aspecto que ha pesado en este sentido.
Los datos se rastrearon utilizando la API de búsqueda para la palabra clave “refugiados”. No se utilizaron hashtags, tipo #refugiados, porque sabemos que según la opinión que se tenga el usuario de Twitter puede utilizar unos hashtags u otros. La extracción de tweets se realizó entre los días XX/XX/2021 y XX/XX/2021. Utilizando el paquete rtweet
, Twitter permite extraer tweets recientes de hasta 8 dias la función utilizada para la extración ha sido search_tweets()
y la que se ha usado para guardar la base de datos ha sido write_as_csv()
.
# EXTRACCIÓN
refugiados <- search_tweets('refugiados', n=100000,
token = TK,
include_rts=TRUE,
lang='es',
retryonratelimit = TRUE)
# ALMACENAMIENTO
write_as_csv(refugiados,
file_name = "refug_twitter_00000.csv",
prepend_ids = TRUE, na = "",
fileEncoding = "UTF-8")
Se trata de un proceso que se ha realizado cíclicamente cada 8 días, durante el cual se han creado varios data frames que finalmente se han fusionado en uno solo.
Como resultado, el conjunto de datos contenia XXXXXXXXX tweets, con más de XXXXXXX usuarios. Las estadísticas del conjunto de datos se muestran en la Tabla XX.
El fichero incluye tweets y retweets. La lectura se realiza mediante una función específica de rtwitter
:
ref <- read_twitter_csv("refug_twitter_08212_ret.csv")
dim(ref)
## [1] 107997 90
Dado el volumen muy grande de tweets que hay que procesar hemos decidido trabajar con una muestra aleatoria del 10% del total de tweets, utilizando la función sample()
del paquete base de R.
set.seed(180662) # Fijar la muestra para que sea reproducible
indexsamp <- sample(1:nrow(ref), floor(nrow(ref)/10))
head(ref[indexsamp, ])
## # A tibble: 6 x 90
## user_id status_id created_at screen_name text source display_text_wi~
## <chr> <chr> <chr> <chr> <chr> <chr> <int>
## 1 1875276487 14323510~ 2021-08-3~ RguzBel "No ~ Twitt~ 122
## 2 307035093 14316121~ 2021-08-2~ paauubbpp "800~ Twitt~ 140
## 3 51455988 14323147~ 2021-08-3~ loco_yiyo "-Ch~ Twitt~ 140
## 4 14229998875794~ 14317032~ 2021-08-2~ Manuela313~ "¿Pe~ Twitt~ 108
## 5 10391432352125~ 14310227~ 2021-08-2~ elefantagr~ "Los~ Twitt~ 140
## 6 78621431874015~ 14315816~ 2021-08-2~ Eudardo146 "¿Pe~ Twitt~ 108
## # ... with 83 more variables: reply_to_status_id <chr>, reply_to_user_id <chr>,
## # reply_to_screen_name <chr>, is_quote <lgl>, is_retweet <lgl>,
## # favorite_count <int>, retweet_count <int>, quote_count <lgl>,
## # reply_count <lgl>, hashtags <chr>, symbols <chr>, urls_url <chr>,
## # urls_t.co <chr>, urls_expanded_url <chr>, media_url <chr>,
## # media_t.co <chr>, media_expanded_url <chr>, media_type <chr>,
## # ext_media_url <chr>, ext_media_t.co <chr>, ...
Hemos decidido seguir seguir un doble camino:
Esto porque en nuestra pruebas previas la graficación de sigmajs nos ha aparecido más eficaz e interactiva para visualizar graficos tan densos, con tantos nodos.
Dentro de las diferentes posibilidades de creación de relaciones que ofrece esta red, el primer paso ha sido analizar los retweets. Ver como se relacionan las personas usuarias a través de este instrumento que les ofrece Twitter para que una persona dé visibilidad dentro de su red a la opinión de otra persona.
Se filtran únicamente los retweets a través de la variable is_retweet
.
ref1 <- ref[indexsamp, ] %>% filter(is_retweet == TRUE) %>%
select(screen_name, retweet_screen_name) %>% distinct() # el uso de "distinct()" es muy importante porque hemos podido comprobar que la función de "graph_from_data_frame()" no tiene en cuenta de los links repetidos. De esta manera el degree que se obtendrá con "igraph" será igual al que se encuentrará con "graphTweets".
El objeto creado se enchufa a la función graph_from_data_frame()
para crear un grafo igraph.
ref1 %>% graph_from_data_frame() -> rt_g
summary(rt_g)
## IGRAPH d61c3d0 DN-- 9677 9472 --
## + attr: name (v/c)
La centralidad en cualquier red es una medida de cuán centrales son sus nodos más centrales. Hay varias métricas para la centralidad, incluidos el grado (degree), los vectores propios (eigenvector), la cercanía (closeness) y el PageRank.
También el grado de entrada (in-degree) y de salida (out-degree) dan una indicación de la centralidad en unos grafos dirigidos.
Las medidas locales de centralidad están basadas en el concepto general de centralidad (redes no dirigidas) o prestigio (redes dirigidas), una medida general de la posición de un actor en la estructura global de la red social. Se usan para identificar los actores clave de la red. Muestran como las relaciones se concentran en unos pocos individuos, dando una idea de su poder social.
Los actores con una “posición más central” (una mayor centralidad) tienen un acceso más fácil y rápido a los demás actores de la red (útil para acceder a recursos como información) y una mayor capacidad para ejercer un control del flujo entre ellos.
En el ámbito de este estudio nos vamos a centrar en tres de estas medidas: grado (grade), intermediación (betweenness) y pageRank
Definición: Centralidad de grado de un actor (\(C_D\)) es el número de enlaces que lo conectan con otros. En nuesto caso serán los retweets. \[C_D(A)=k_A=1;C_D(B)=k_B=4\]
Definición: En redes dirigidas, se define el Prestigio de entrada (in-degree), denominado Soporte, y el Prestigio de salida (out-degree), denominado Influencia. En el caso de nuestros retweets, el sooporte / in-degree indica el número de retweets que recibe un usuario y la influencia (out-degree) indica cuántos retweets realiza un usuario. \[P^{in}_D(C)=k^{in}_D=2;P^{out}_D(C)=1\]
Se va a representar la distribución de los degrees. Vemos que esta distribución sigue una pauta muy común en las redes sociales: “muchos nodos con muy pocas conexiones y muy pocos nodos con muchísimas”.
ggplot(data_frame(y=degree_distribution(rt_g), x=1:length(y))) + # Dona la distribució dels degrees
geom_segment(aes(x, y, xend=x, yend=0), color="red") +
scale_y_continuous(expand=c(0,0), trans="sqrt") +
labs(x="Degree", y="Density (sqrt scale)", title="Distribución de los 'degrees'")+
theme_ipsum_rc(grid="Y", axis="x")
El objeto igraph
se puede convertir en un dataframe con los grados de cada nodo ordenados en orden descendiente. Aquí visualizamos los 10 usuarios con crado más alto.
degrees <- degree(rt_g, mode = "in") %>% data.frame()
degrees <- data.frame(nodes = row.names(degrees), degrees)
names(degrees) <- c("nodes", "degrees")
rownames(degrees) <- NULL
degrees %>% arrange(desc(degrees)) %>% head(10)
## nodes degrees
## 1 Alvisepf 835
## 2 pablom_m 745
## 3 anluma99 383
## 4 edubarbaramos 318
## 5 VKseDefiende 305
## 6 PMunozLedo 235
## 7 okdiario 191
## 8 100_espana 151
## 9 aracelibs 146
## 10 ramiroaguilart 144
Nuestro interés es poder clasificar algunos nodos en base al contenido de los tweets para poder de alguna manera asignarles algunos atributos y ver como éstos encajan con la distribución de la red. Vamos entonces a añadir un data frame a partir de nuestra muestra que incluya el texto, para poderlo clasificar
ref2 <- ref[indexsamp, ] %>% filter(is_retweet == TRUE) %>%
select(text,retweet_screen_name)
Vamos a evaluar el texto de los tweets con los usuarios con los grados más altos (esto es, sus tweets en nuestra selección tienen más “retweeteadores”:
deg_eval_excel <- degrees %>%
left_join(ref2, by = c("nodes" = "retweet_screen_name")) %>%
distinct(nodes,degrees,text) %>%
arrange(desc(degrees)) %>% head(n=40)
# write.xlsx(deg_eval_excel,"deg_eval_excel.xlsx")
# clasificación de los 40 retweets
# añadir columna con posicionamiento y eval.user que es la tipología de usuario
deg_eval <- read_xlsx("deg_eval_excel.xlsx",
sheet = "Sheet1")
deg_eval <- deg_eval %>% distinct(nodes,eval,eval.user)
deg_eval %>% flextable()
nodes | eval | eval.user |
Alvisepf | contra | particular |
pablom_m | favor | particular |
anluma99 | neutro | particular |
edubarbaramos | favor | particular |
VKseDefiende | neutro | entidad |
PMunozLedo | favor | particular |
okdiario | contra | media |
100_espana | contra | particular |
ramiroaguilart | contra | particular |
aracelibs | favor | particular |
AlanBarrosoA | neutro | particular |
HoyPalestina | neutro | media |
Shine_McShine | favor | particular |
adirecto | favor | media |
DAVlDcu | contra | particular |
rubnpulido | contra | particular |
hermanntertsch | contra | particular |
Esto nos va a proveer una tabla con unos usuarios con unas determinados atributos. Cabe decir que la clasificación manual que hemos realizado puede tener cierto grado de subjetividad.
Los posicionamientos (eval) pueden tener muchos matices:
Por lo que se refiere a las características de los usuarios, hemos intentado identificar 3 categorías: particulares, medios de comunicación (media) y entidades. En el caso de los media hemos incluído también los periodistas (es el caso de los usuarios “anapastor” y “eduardoinda”, oorejemlo), ya que normalmente actúan como caja de resonancia del medio para el que trabajan.
Esto, como vamos a ver más adelante, se traducirá en nodos con colores y formas diferentes.
Para construir una red de retweets con graphTweets, vamos a utilizar el orden gt_edges
, basado en screen_ name
y retweet_screen_name
(nombres de los usuarios cuyo tweet es retwiteado) que aporta el API de Twitter.
# building a network of Twitter retweets with graphTweets
retweets <- ref[indexsamp, ] %>%
filter(is_retweet == TRUE)
# crear nodos y edges
net <- retweets %>%
gt_edges(screen_name, retweet_screen_name, tl = FALSE) %>% # get edges. Put tl (tolower)=FALSE. IMPORTANTE PARA FUSIONAR DESPUEL EL DATA FRAME CON EL CUADRO deg_eval
gt_nodes() %>% # get nodes
gt_collect() # collect
c(edges, nodes) %<-% net
nodes <- nodes2sg(nodes)
edges <- edges2sg(edges)
En este primer caso visualizaremos un grafo de retweets donde el tamaño de los nodos estará en función de su grado, es decir, tal y como lo hemos definido, el prestigio de cada usuario. Adicionalmente vamos a incorporar a la visualización de los nodos con mayor grado los atributos que hemos identificado anteriormente, utilizando para ello el color y la forma, creando dos variables adicionales en el data frame.
# Asignación de diferentes características gráficas a los atributos: el color para el posicionamiento (eval) y la forma para las caracterísiticas del usuario (eval.user)
nodes <- nodes %>% left_join(deg_eval, by = c("id"="nodes")) %>%
mutate(eval=if_else(is.na(eval), "",eval)) %>%
mutate(color= case_when(eval=="contra" ~ "red",
eval=="favor" ~ "yellow",
eval=="neutro" ~ "green",
eval=="" ~ "")) %>%
mutate(eval.user=if_else(is.na(eval.user), "",eval.user)) %>%
mutate(shapes= case_when(eval.user=="particular" ~ "circle",
eval.user=="media" ~ "square",
eval.user=="asociación" ~ "diamond",
eval.user=="" ~ ""))
Ahora podemos ejecutar la visualización utilizando la función sigmajs()
. Los atributos y caracerísticas que hemos determinado se fijan en los parámetros de sg_nodes()
.
set.seed(180662)
sigmajs() %>%
sg_nodes(nodes, id, label, size, color=color, type=shapes) %>%
sg_edges(edges, id, source, target) %>%
sg_layout(layout = igraph::layout_components) %>%
sg_settings(
minNodeSize = .5,
maxNodeSize = 8,
edgeColor = "default",
defaultEdgeColor = "#d3d3d3",
zoomMax = 8
)
La visualización que se produce presents muchas aspectos interesantes. Vamos a destacar algunos:
betweenness <- betweenness(rt_g) %>% data.frame() # Por defecto es "directed = TRUE"
d <- data.frame(nodes = row.names(betweenness), betweenness)
names(d) <- c("nodes", "values")
rownames(d) <- NULL
d %>% arrange(desc(values)) %>% head(40)
## nodes values
## 1 100_espana 755.0
## 2 DGuirilandia 487.0
## 3 jjdesmeules 380.0
## 4 PerujoMaria 219.0
## 5 okdiario 189.0
## 6 LadyAtila 129.0
## 7 ChovaresJavier 100.0
## 8 KimeScream 68.0
## 9 el_pais 62.0
## 10 rtvenoticias 59.0
## 11 REALFANCLUBDVOX 55.0
## 12 _anapastor_ 20.0
## 13 seanmamo_11tw 13.5
## 14 blocobotanico 12.0
## 15 Mila87723614 12.0
## 16 rouco64 12.0
## 17 CapitanApio 11.0
## 18 rafaelgil251051 10.0
## 19 Miss_Bennet7 10.0
## 20 Machepa2 7.0
## 21 Sinolodigo2 7.0
## 22 Maria_PujolR 6.0
## 23 sanchezdelreal 6.0
## 24 UniversidadPe 5.0
## 25 DonutsComeme 5.0
## 26 Cris_Hispana 5.0
## 27 raqueltorrs 5.0
## 28 Dsagunt 5.0
## 29 Pedrosepulturas 5.0
## 30 AlbNavar 4.0
## 31 ea1wg 4.0
## 32 jatirado 4.0
## 33 Jjsb441 4.0
## 34 jesusccarrillo 4.0
## 35 Aryayol 3.5
## 36 NoticieroMAD 3.0
## 37 CristinaSegui_ 3.0
## 38 IbehispIb__xx0 3.0
## 39 CarmenPerfume 3.0
## 40 Valeria21130533 3.0
# Unir el texto del los retweets (text) con betweenness más alto (60) para poderlo clasificar
d_eval_betw <- d %>%
left_join(ref2, by = c("nodes" = "retweet_screen_name")) %>%
distinct(nodes,text,values) %>%
arrange(desc(values)) %>% head(60)
flextable(d_eval_betw) %>%
width(j = 3, width = 5)
nodes | values | text |
100_espana | 755.0 | No tenemos dinero para pagar las pensiones, pero a refugiados de cualquier país, que no los falte de nada. |
100_espana | 755.0 | Están más preocupados en hacerse una foto con los refugiados afganos, que de la situación económica de España. |
100_espana | 755.0 | ¿Sabéis cuántos refugiados afganos acogerá Arabia Saudí? https://t.co/WxcPz37nRt |
DGuirilandia | 487.0 | El coladero yihadista ya no son las pateras. Ahora llegan en puente aéreo. |
jjdesmeules | 380.0 | ¿Sabéis si algún país árabe esta acogiendo refugiados afganos?. |
PerujoMaria | 219.0 | Ejemm @sanchezcastejon se te ha caído esto, es del 2016, te acuerdas cuando exigías a Rajoy q compareciera por la crisis de los refugiados? Y ahora q? https://t.co/pMmz1PlvOW |
okdiario | 189.0 | El Ejército detecta a afganos que nunca han trabajado con España entre los refugiados evacuados https://t.co/zcCB5twPtI |
okdiario | 189.0 | El CNI busca contrarreloj a terroristas infiltrados entre los refugiados afganos que vendrían a España https://t.co/gFL3E14Sbu |
okdiario | 189.0 | El ‘show’ afgano de Sánchez, insólito en Europa: ningún líder se hace la foto con los refugiados https://t.co/jdQo5vPEfW |
okdiario | 189.0 | El Gobierno de Sánchez patina al informar del traslado de 27 refugiados afganos a Córdoba: fueron sólo 2 https://t.co/xsZUpubWpc |
okdiario | 189.0 | Sánchez monta otro paripé en Torrejón para presumir ante el Rey de su centro de acogida de refugiados https://t.co/tlkmyYhUIN |
okdiario | 189.0 | Aterriza en Rota (Cádiz) el primer vuelo estadounidense con 400 refugiados afganos: llegarán 3.600 más https://t.co/HHmQ4uX9X7 |
LadyAtila | 129.0 | refugiados. Pero pronto se hizo obvio que había algo muy malo en esos jóvenes afganos: estaban cometiendo crímenes sexuales en una proporción mucho mayor que las de otros refugiados... |
LadyAtila | 129.0 | PREPARAOS PARA LAS CONSECUENCIAS DEL BUENISMO, relato de una mujer austríaca que trabajaba con refugiados en la anterior ola de refugiados afganos, y las consecuencias: |
LadyAtila | 129.0 | Los refugiados q acoge Europa, no los quieren en sus propios países. |
LadyAtila | 129.0 | no resultaba tolerable: la enorme y creciente incidencia de los asaltos sexuales cometidos por refugiados contra mujeres locales. [...] Al principio, los incidentes fueron... |
LadyAtila | 129.0 | [...] He trabajado con refugiados en Sudán, Yemen, Tailandia..., y jamás había visto una cosa así". |
LadyAtila | 129.0 | posible]. [...] Con el reconocimiento oficial, emergió una extraña e intrigante nota al pie: la mayoría de los asaltos estaban siendo cometidos por refugiados de una nacionalidad... |
ChovaresJavier | 100.0 | ¡Se buscan traductores del afgano para que traduzcan a los refugiados traductores y colaboradores Afganos! Para qué nos puedan explicar por qué no tienen ni pta idea de hablar el Español. |
KimeScream | 68.0 | NO SE SI UDS LO VEN D ESTA MANERA,PERO LO ACONTECIDO EN AFGANISTÀN ES TAN EXTRAÑO Q NO QUEDA + Q PENSAR Q ESTUVO PLANIFICADO PARA LLEVAR EL ISLAMISMO A CADA RINCÒN DEL PLANETA,SON MILES LOS CABALLOS D TROYA SALIENDO AHORA MISMO SABEN?MILES D INFILTRADOS DISFRAZADOS D REFUGIADOS. |
KimeScream | 68.0 | SABEN CUAL ES LA DIFERENCIA DE LO QUE PASA AHORA CON LO QUE PASABA EN LA ERA TRUMP? HOY HAY TALIBANES DISFRAZADOS DE REFUGIADOS EN AMERICA, EN EUROPA, EN EL MUNDO ENTERO...EL CANCER HIZO METÀSTASIS, GRACIAS A BIDEN. |
KimeScream | 68.0 | YA VIERON?? |
el_pais | 62.0 | “He dado camisetas que nunca quiero dar, como una que cambia de Hulk a Spiderman cuando la tocas”, dice un niño de 6 años, consciente de que llegarán niños como él. Los gaditanos donan centenares de productos a los primeros 800 refugiados llegados a Rota |
el_pais | 62.0 | “He dado camisetas que nunca quiero dar, como una que cambia de Hulk a Spiderman cuando la tocas”, dice un niño de 6 años, consciente de que llegarán niños como él. Los gaditanos donan centenares de productos a los primeros 800 refugiados llegados a Rota https://t.co/SsWt0bEUKO |
el_pais | 62.0 | “He dado camisetas que nunca quiero dar, como una que cambia de Hulk a Spiderman cuando la tocas”, dice un niño de 6 años, consciente de que llegarán niños como él. Los gaditanos donan centenares de productos a los primeros 800 refugiados llegados a Rota https://t.co/TparRdA841 |
el_pais | 62.0 | El éxito de los islamistas radicales enfrenta a Pakistán a varios desafíos que amenazan con convertirse en problemas. El más obvio e inmediato es un éxodo de refugiados https://t.co/DlhXQOpDEY |
el_pais | 62.0 | El éxito de los islamistas radicales enfrenta a Pakistán a varios desafíos que amenazan con convertirse en problemas. El más obvio e inmediato es un éxodo de refugiados. https://t.co/JFcrnl83R3 |
el_pais | 62.0 | Malakasa es uno de los 28 campos que hay en la parte continental de Grecia. Viven unas 1.900 personas, casi todos afganos. La espera de un futuro fuera de allí es tan larga que a alguien le ha dado tiempo para cultivar una pequeña huerta https://t.co/FekR8QPEOn |
el_pais | 62.0 | Comida halal, carpas y ropa para niños y adultos: las bases de Morón y Rota están listas para la llegada de los colaboradores afganos del Ejército de EE UU a las bases españolas https://t.co/97jViiGv1C |
el_pais | 62.0 | El éxito de los islamistas radicales enfrenta a Pakistán a varios desafíos que amenazan con convertirse en problemas. El más obvio e inmediato es un éxodo de refugiados https://t.co/cyWdatYvHo |
rtvenoticias | 59.0 | Santiago Abascal, presidente de Vox: "Europa no tiene ningún deber moral de acoger a todo Afganistán. (...) Pretenden ofrecer a miles de refugiados lo que no podemos dar a los españoles" |
rtvenoticias | 59.0 | Esta mañana, el rey y el presidente del Gobierno visitan el centro de acogida de refugiados afganos. |
rtvenoticias | 59.0 | La nueva vida de Momín y su familia, refugiados afganos en España: "Mis hijas crecerán libres y seguras" |
REALFANCLUBDVOX | 55.0 | https://t.co/TqO8mQtiPn SOLO VOX APOYA A LOS REFUGIADOS CRISTIANOS DE AFGANISTÁN Y PIDE QUE VENGAN A ESPAÑA. VOX ÚNICO PARTIDO QUE SE OPONE A QUE VENGAN ISLAMISTAS AFGANOS QUE NO HAYAN TRABAJADO PARA ESPAÑA, PARA EVITAR LOS TERRORISTAS INFILTRADOS. #PrimeroVox #SiguemeYTeSigoVOX |
_anapastor_ | 20.0 | “¿Cómo podemos ayudar?” |
_anapastor_ | 20.0 | Crack Jose Andres organizando el envío y reparto de alimentos en Haití y para refugiados que salen de Afganistán. |
seanmamo_11tw | 13.5 | © Este es el problema!!!<U+0001F621>es la forma perfecta de entrar en nuestro país y cuántos habrá? No podemos aceptar refugiados es un suicidio |
blocobotanico | 12.0 | @JaimeSa45374227 La @guardiacivil perseguida en Alsasua si que son refugiados en su propio país, pero como son españoles eso no le preocupa al @interiorgob ni a @sanchezcastejon. A ver si aprendemos a votar!!! |
Mila87723614 | 12.0 | Mientras que los emigrantes españoles salieron en busca de oportunidades con sus papeles en regla, estos garfios, junto a palos y piedras, son la carta de presentación de los "refugiados" que, según gobierno y reinos de taifas vienen a pagar las pensiones! |
Mila87723614 | 12.0 | Siguen invadiendo a España ante el silencio atronador de medios, gobierno y reinos de taifas! |
Mila87723614 | 12.0 | Más "refugiados del hambre y de la guerra"! |
rouco64 | 12.0 | <U+0001F6D1>Excelente artículo: No es solución traer refugiados afganos a Europa. Lo cuenta alguien que estuvo allí y su porqué <U+2935><U+FE0F><U+2935><U+FE0F> |
CapitanApio | 11.0 | ¿Os imagináis la que se lía si Podemos pide la lista de "refugiados" venezolanos que se han venido a España los últimos años?. https://t.co/d7vzz7VReN |
CapitanApio | 11.0 | La inmensa mayoría de los fachas que conozco pueden estar muy tranquilos, los refugiados afganos no le van a quitar el trabajo. Son personas muy formadas. |
rafaelgil251051 | 10.0 | @rcavada El traidor presidente sigue apostando a violar las leyes y la constitución dominicana eso está prohibido por ley y constitución si esto pasa ahí mismo vienen los campos para los refugiados haitianos Qué son millones si dejamos que toque la constitución desapareceremos como nación |
Miss_Bennet7 | 10.0 | ¿Quién es el único presidente que se ha hecho fotos con los refugiados? |
Machepa2 | 7.0 | @pelegrinc Quien le dio poder a este libanés para aceptar refugiados, ese acuerdo viola la constitución...quien le va a poner un stop, seguiremos tuiteando sin reaccionar? |
Sinolodigo2 | 7.0 | Sánchez visitando refugiados VS Sánchez visitando enfermos Covid. https://t.co/elveEZUGWG |
Maria_PujolR | 6.0 | Hoy vamos a tratar un tema poco común: los refugiados cristianos. |
Maria_PujolR | 6.0 | <U+274C>Los parados, la gente mayor, con riesgo de exclusión, no. |
sanchezdelreal | 6.0 | Esto de @JTorres_86 https://t.co/EQfqU3CFBz |
UniversidadPe | 5.0 | Periodistas afganos refugiados: según RSF, ya han cerrado 100 medios afganos https://t.co/BaBFLXlHUV https://t.co/NRFuCDKkdp |
UniversidadPe | 5.0 | Las peligrosas rutas para huir del terror: ¿dónde irán los afganos tras la salida de las tropas internacionales? https://t.co/4pw5uYjUSl https://t.co/4vbfBoS3Vo |
UniversidadPe | 5.0 | Refugiados afganos: desde el infierno talibán a la incertidumbre del asilo en España y la Unión Europea https://t.co/vClu7vEgHz #_NoticiasMundoAsiaAfganistán https://t.co/Fj2etO8Wb2 |
UniversidadPe | 5.0 | 14 horas Fin de Semana - Comida para los refugiados afganos: Así funciona la ONG World Central Kitchen https://t.co/O0tUIGaD2z |
UniversidadPe | 5.0 | Política: Gobierno expresa disposición de acoger a familias afganas en situación de vulnerabilidad - RPP Noticias https://t.co/sV8fmRGOhe #Gobierno #afganistan #refugiados https://t.co/oQkVzc4hv2 |
DonutsComeme | 5.0 | Lo que le debe de joder a Open arms que los refugiados de Afganistán hayan venido en avión y no haber podido hacer caja .. |
Cris_Hispana | 5.0 | La Generalitat quiere que los refugiados afganos se queden en España ‘toda su vida’ y vivan en micropueblos. |
raqueltorrs | 5.0 | Una lista de qué donar para los refugiados afganos que están llegando a la base de Rota. Difundid, por favor <U+0001F97A> https://t.co/sqxWDcfWiF |
Dsagunt | 5.0 | Por qué los países árabes no recogen refugiados, a priori hermanos de religión, costumbres e idiosincrasia, "obligándoles" a recalar en Europa? |
# CLASIFICACIÓN MANUAL EN EXCEL DE LOS RETWEENTS, CREANDO DOS COLUMNAS, eval Y aval.user Y VUELTA A R
# write.xlsx(d_eval_betw,"d_eval_betw.xlsx")
# clasificación de los 60 retweets
# añadir columnas con posicionamiento y descripcion usuario
d_eval_betw2 <- readxl::read_xlsx("d_eval_betw.xlsx",
sheet = "Sheet1")
d_eval_betw2 <- d_eval_betw2 %>% distinct(nodes,values,eval,eval.user)
d_eval_betw2 %>% flextable()
nodes | values | eval | eval.user |
100_espana | 755.0 | contra | particular |
DGuirilandia | 487.0 | contra | particular |
jjdesmeules | 380.0 | contra | particular |
PerujoMaria | 219.0 | contra | particular |
okdiario | 189.0 | contra | media |
LadyAtila | 129.0 | contra | particular |
ChovaresJavier | 100.0 | contra | particular |
KimeScream | 68.0 | contra | particular |
el_pais | 62.0 | neutro | media |
rtvenoticias | 59.0 | neutro | media |
REALFANCLUBDVOX | 55.0 | contra | particular |
_anapastor_ | 20.0 | favor | media |
seanmamo_11tw | 13.5 | contra | particular |
blocobotanico | 12.0 | contra | particular |
# Volver a crear nodos y edges
net <- retweets %>%
gt_edges(screen_name, retweet_screen_name, tl = FALSE) %>% # get edges. Put tl (tolower)=FALSE. IMPORTANTE PARA FUSIONAR DESPUEL EL DATA FRAME CON EL CUADRO deg_eval
gt_nodes() %>% # get nodes
gt_collect() # collect
c(edges, nodes) %<-% net
nodes <- nodes2sg(nodes)
edges <- edges2sg(edges)
# Vuelta generar el data frame donde aplicar el gráfico
nodes1 <- nodes %>% left_join(d_eval_betw2, by = c("id"="nodes")) %>%
mutate(eval=if_else(is.na(eval), "",eval)) %>%
mutate(color= case_when(eval=="contra" ~ "red",
eval=="favor" ~ "yellow",
eval=="neutro" ~ "green",
eval=="" ~ "")) %>%
mutate(eval.user=if_else(is.na(eval.user), "",eval.user)) %>%
mutate(shapes= case_when(eval.user=="particular" ~ "circle",
eval.user=="media" ~ "square",
eval.user=="asociación" ~ "diamond",
eval.user=="" ~ ""))
set.seed(180662)
sigmajs() %>%
sg_nodes(nodes1, id, label, size=values, color=color, type=shapes) %>%
sg_edges(edges, id, source, target) %>%
sg_layout(layout = igraph::layout_components) %>%
sg_settings(
minNodeSize = .8,
maxNodeSize = 8,
edgeColor = "default",
defaultEdgeColor = "#d3d3d3",
zoomMax = 12
)
pagerank <- unlist(page.rank(rt_g)$vector) %>% data.frame() # Por defecto es directed = TRUE
e <- data.frame(nodes = row.names(pagerank), pagerank)
names(e) <- c("nodes", "values")
rownames(e) <- NULL
e %>% filter(nodes != "NA") %>% arrange(desc(values)) %>% head(40)
## nodes values
## 1 Alvisepf 0.035881502
## 2 pablom_m 0.033310875
## 3 anluma99 0.016751480
## 4 LadyAtila 0.016463703
## 5 edubarbaramos 0.014409325
## 6 FernndezCrisfnb 0.014093259
## 7 VKseDefiende 0.013517736
## 8 PMunozLedo 0.010663852
## 9 el_pais 0.010569631
## 10 jesusccarrillo 0.009219911
## 11 eduardoinda 0.007408494
## 12 okdiario 0.007181738
## 13 aracelibs 0.006610999
## 14 ramiroaguilart 0.006565461
## 15 jjdesmeules 0.005988676
## 16 100_espana 0.005798260
## 17 AlanBarrosoA 0.005760962
## 18 Shine_McShine 0.005289647
## 19 adirecto 0.004986442
## 20 HoyPalestina 0.004975437
## 21 DAVlDcu 0.004920165
## 22 omarbula 0.004636068
## 23 rubnpulido 0.003900170
## 24 PerujoMaria 0.003661054
## 25 hermanntertsch 0.003579328
## 26 sergiosayas 0.003318625
## 27 LRsecreta 0.003259101
## 28 Dannyelsan1613 0.003233776
## 29 JuanfraEscudero 0.003106116
## 30 KimeScream 0.003029461
## 31 Seryo6661 0.002967985
## 32 DGuirilandia 0.002887195
## 33 arroyomatteucc1 0.002785834
## 34 aalvarez_96 0.002558146
## 35 veintimillapier 0.002552255
## 36 EsLaRadio2 0.002517834
## 37 Navegaciones 0.002467070
## 38 N_Trastamara 0.002343107
## 39 peruenlanoticia 0.002317258
## 40 MarDGamero 0.002240900
# Unir el texto del los retweets (text) con PageRank más alto (60) para poderlo clasificar
d_eval_pR <- e %>%
left_join(ref2, by = c("nodes" = "retweet_screen_name")) %>%
distinct(nodes,text,values) %>%
arrange(desc(values)) %>% head(60)
flextable(d_eval_pR) %>%
width(j = 3, width = 5)
nodes | values | text |
Alvisepf | 0.035881502 | ¿Pero no eran traductores e intérpretes los cientos de refugiados que hemos traído a España? <U+0001F914> https://t.co/AH1Q0TJgkd |
Alvisepf | 0.035881502 | Mira bien esta foto de refugiados buscando futuro en Europa y luego lee el texto: |
pablom_m | 0.033310875 | 800 refugiados de Afganistán han llegado a la base naval de Rota (Cádiz). Esta es una de las provincias más pobres de España, pero en 48 horas los vecinos han donado 6.000 kilos de ropa, productos de higiene y juguetes. Contra los discursos xenófobos, empatía y solidaridad. |
anluma99 | 0.016751480 | El alcalde Almeida restituye la calle del crucero Baleares, el barco franquista que bombardeó desde el mar a miles de refugiados civiles que huían de una muerte segura en Málaga. https://t.co/C46WIqIWmH |
anluma99 | 0.016751480 | Fue la peor matanza de refugiados llevada a cabo durante la guerra civil española. |
anluma99 | 0.016751480 | Alcalde Almeida: autor responsable del reconocimiento institucional al jefe de la propaganda fascista encargada de justificar miles de asesinatos, y al barco de guerra usado para producir la más importante matanza de refugiados en la historia de España. https://t.co/1OYIesD7Oh |
anluma99 | 0.016751480 | El médico Norman Bethune se desplazó hacia Málaga con una unidad de transfusión de sangre para socorrer a los refugiados. Durante 3 dias con sus ayudantes Hazen Sise y T.C. Worsley socorrieron a los heridos y ayudaron en el traslado de refugiados hacia la capital almeriense: |
anluma99 | 0.016751480 | Su ayudante Worsley dejó su testimonio desgarrador en el libro Behind the Battle (1939): |
anluma99 | 0.016751480 | ¿Sabia que su intervención fue fundamental en esta matanza de refugiados ya que este acorazado, a diferencia de los aviones, podía fijar su posición de tiro y calcular con mayor precisión el punto exacto del blanco para que los disparos de sus cañones resultasen más mortíferos? |
LadyAtila | 0.016463703 | refugiados. Pero pronto se hizo obvio que había algo muy malo en esos jóvenes afganos: estaban cometiendo crímenes sexuales en una proporción mucho mayor que las de otros refugiados... |
LadyAtila | 0.016463703 | PREPARAOS PARA LAS CONSECUENCIAS DEL BUENISMO, relato de una mujer austríaca que trabajaba con refugiados en la anterior ola de refugiados afganos, y las consecuencias: |
LadyAtila | 0.016463703 | Los refugiados q acoge Europa, no los quieren en sus propios países. |
LadyAtila | 0.016463703 | no resultaba tolerable: la enorme y creciente incidencia de los asaltos sexuales cometidos por refugiados contra mujeres locales. [...] Al principio, los incidentes fueron... |
LadyAtila | 0.016463703 | [...] He trabajado con refugiados en Sudán, Yemen, Tailandia..., y jamás había visto una cosa así". |
LadyAtila | 0.016463703 | posible]. [...] Con el reconocimiento oficial, emergió una extraña e intrigante nota al pie: la mayoría de los asaltos estaban siendo cometidos por refugiados de una nacionalidad... |
edubarbaramos | 0.014409325 | La foto del año. Una familia de refugiados afganos llegando a Bélgica. |
FernndezCrisfnb | 0.014093259 | Más Madrid exige a Ayuso que acoja refugiados y destine más dinero.Cuantos va acoger Mónica en su casa?Que listos son los pogres!! https://t.co/Sh1pH8wRvL vía @flashdigital_es |
VKseDefiende | 0.013517736 | <U+0001F632>El Ayuntamiento de Madrid cambia el nombre de nuestra calle vallecana "Barco Sinaia" por "Crucero Baleares". |
VKseDefiende | 0.013517736 | que bombardeó a refugiados civiles en "la Desbandá". |
PMunozLedo | 0.010663852 | Afganos sí. Haitianos no. Contradicciones, deberes; el canciller Marcelo Ebrad, acudió solícitamente al aeropuerto para acoger a los exiliados afganos, mientras la GN se encargó el mismo día de recibir a los refugiados haitianos y salvadoreños... pero a golpes y vejaciones. 1/2 |
el_pais | 0.010569631 | “He dado camisetas que nunca quiero dar, como una que cambia de Hulk a Spiderman cuando la tocas”, dice un niño de 6 años, consciente de que llegarán niños como él. Los gaditanos donan centenares de productos a los primeros 800 refugiados llegados a Rota |
el_pais | 0.010569631 | “He dado camisetas que nunca quiero dar, como una que cambia de Hulk a Spiderman cuando la tocas”, dice un niño de 6 años, consciente de que llegarán niños como él. Los gaditanos donan centenares de productos a los primeros 800 refugiados llegados a Rota https://t.co/SsWt0bEUKO |
el_pais | 0.010569631 | “He dado camisetas que nunca quiero dar, como una que cambia de Hulk a Spiderman cuando la tocas”, dice un niño de 6 años, consciente de que llegarán niños como él. Los gaditanos donan centenares de productos a los primeros 800 refugiados llegados a Rota https://t.co/TparRdA841 |
el_pais | 0.010569631 | El éxito de los islamistas radicales enfrenta a Pakistán a varios desafíos que amenazan con convertirse en problemas. El más obvio e inmediato es un éxodo de refugiados https://t.co/DlhXQOpDEY |
el_pais | 0.010569631 | El éxito de los islamistas radicales enfrenta a Pakistán a varios desafíos que amenazan con convertirse en problemas. El más obvio e inmediato es un éxodo de refugiados. https://t.co/JFcrnl83R3 |
el_pais | 0.010569631 | Malakasa es uno de los 28 campos que hay en la parte continental de Grecia. Viven unas 1.900 personas, casi todos afganos. La espera de un futuro fuera de allí es tan larga que a alguien le ha dado tiempo para cultivar una pequeña huerta https://t.co/FekR8QPEOn |
el_pais | 0.010569631 | Comida halal, carpas y ropa para niños y adultos: las bases de Morón y Rota están listas para la llegada de los colaboradores afganos del Ejército de EE UU a las bases españolas https://t.co/97jViiGv1C |
el_pais | 0.010569631 | El éxito de los islamistas radicales enfrenta a Pakistán a varios desafíos que amenazan con convertirse en problemas. El más obvio e inmediato es un éxodo de refugiados https://t.co/cyWdatYvHo |
jesusccarrillo | 0.009219911 | Rota se vuelca con los afganos que nunca conocerá. Los vecinos donan centenares de productos a los primeros 800 refugiados llegados a la base militar estadounidense https://t.co/D43mfcm00p @el_pais |
eduardoinda | 0.007408494 | El Ejército detecta a afganos que nunca han trabajado con España entre los refugiados evacuados https://t.co/QFUUAVyiaN |
eduardoinda | 0.007408494 | Sánchez monta otro paripé en Torrejón para presumir ante el Rey de su centro de acogida de refugiados https://t.co/k9U8q6bdX1 |
okdiario | 0.007181738 | El Ejército detecta a afganos que nunca han trabajado con España entre los refugiados evacuados https://t.co/zcCB5twPtI |
okdiario | 0.007181738 | El CNI busca contrarreloj a terroristas infiltrados entre los refugiados afganos que vendrían a España https://t.co/gFL3E14Sbu |
okdiario | 0.007181738 | El ‘show’ afgano de Sánchez, insólito en Europa: ningún líder se hace la foto con los refugiados https://t.co/jdQo5vPEfW |
okdiario | 0.007181738 | El Gobierno de Sánchez patina al informar del traslado de 27 refugiados afganos a Córdoba: fueron sólo 2 https://t.co/xsZUpubWpc |
okdiario | 0.007181738 | Sánchez monta otro paripé en Torrejón para presumir ante el Rey de su centro de acogida de refugiados https://t.co/tlkmyYhUIN |
okdiario | 0.007181738 | Aterriza en Rota (Cádiz) el primer vuelo estadounidense con 400 refugiados afganos: llegarán 3.600 más https://t.co/HHmQ4uX9X7 |
aracelibs | 0.006610999 | Una familia de refugiados afganos llegando a Bélgica. |
ramiroaguilart | 0.006565461 | Son un caso almitas benditas cuando #Correa dio asilo a #Assange dijeron que jijue el comunista cómo le va a dar asilo! Ahora que #Lasso crea un campo de refugiados afganos casi por orden de #USA no dicen ni pío! Son unos webas algunos definitivamente. <U+0001F600> |
ramiroaguilart | 0.006565461 | Respecto al tema de los refugiados afganos. Ninguno de ellos pidió venir al Ecuador. Los #USA los traen aprovechando el gobierno títere de @LassoGuillermo para usar al país como campo de refugiados mientras filtran quién entra a USA y quién no. |
ramiroaguilart | 0.006565461 | Conceptualmente #Correístas y #Anticorreístas el asilo de #Assange y los refugiados #Afganos son lo mismo. La diferencia política estriba en que el asilo se dio soberanamente y el campo de refugiados lo impone #USA . Estamos? |
jjdesmeules | 0.005988676 | ¿Sabéis si algún país árabe esta acogiendo refugiados afganos?. |
100_espana | 0.005798260 | No tenemos dinero para pagar las pensiones, pero a refugiados de cualquier país, que no los falte de nada. |
100_espana | 0.005798260 | Están más preocupados en hacerse una foto con los refugiados afganos, que de la situación económica de España. |
100_espana | 0.005798260 | ¿Sabéis cuántos refugiados afganos acogerá Arabia Saudí? https://t.co/WxcPz37nRt |
AlanBarrosoA | 0.005760962 | Han vuelto a hacerlo. Han cambiado la calle Barco Sinaia, que ayudó a transportar a refugiados españoles a México, por el Crucero Baleares, un barco de guerra que participó en la masacre de La Desbandá matando a 5000 civiles indefensos que huían del fascismo. Esto es intolerable. https://t.co/ByZslXLrZq |
Shine_McShine | 0.005289647 | Literalmente durante la segunda guerra mundial se evacuaron a decenas de miles de europeos a campos de refugiados en el norte de África y oriente medio, campeón. https://t.co/O8PAifHjzw |
Shine_McShine | 0.005289647 | 5/5 Los refugiados huyen del hambre y la guerra. Cualquiera, de cualquier raza, etnia o nacionalidad puede verse en esta situación. Negar esto es negar la historia. https://t.co/FsSa5LejYe |
Shine_McShine | 0.005289647 | Por si queréis leer sobre cuando los europeos fueron los refugiados: https://t.co/ovmWEuXTp6 |
adirecto | 0.004986442 | Rota se moviliza para atender a los refugiados afganos que llegarán a la base naval. |
HoyPalestina | 0.004975437 | Un día como hoy hace 34 años, un sicario del Mossad asesina al caricaturista palestino Naji AlAli en Londres. |
HoyPalestina | 0.004975437 | ONU para refugiados pide a Israel investiguen asesinatos de palestinos. https://t.co/2fS7t9Q3nl |
DAVlDcu | 0.004920165 | ¿Soy xenófobo si digo que está muy sospechoso eso de EEUU al querer repartir "refugiados" afganos por medio mundo? |
DAVlDcu | 0.004920165 | EEUU que en 20 años destrozó a Afganistán, ahora viene exigiendo al mundo que reciba a sus "refugiados"... ¿¡porque no cargan ellos con su responsabilidad!? |
DAVlDcu | 0.004920165 | Intentaron montar un show publicitario con Angelina Jolie enviada especial de la ONU y su visita a "campos de refugiados de venezolanos desnutridos" en la frontera de Colombia, cuando en realidad quien necesita ayuda humanitaria es la desmejorada Angelina... https://t.co/1fVNYww4eH |
omarbula | 0.004636068 | Es tan humanitario proteger a las poblaciones de los países que acogen refugiados como acoger esos refugiados. Siempre hay seres humanos de los dos lados… |
omarbula | 0.004636068 | Hay más de 50 Estados en EEUU con mayor capacidad para recibir refugiados "en tránsito". ¿Por qué #Colombia? Solo pregunto… |
rubnpulido | 0.003900170 | <U+0001F4CA> Inmigración ilegal en 2021 por nacionalidades: |
PerujoMaria | 0.003661054 | Ejemm @sanchezcastejon se te ha caído esto, es del 2016, te acuerdas cuando exigías a Rajoy q compareciera por la crisis de los refugiados? Y ahora q? https://t.co/pMmz1PlvOW |
hermanntertsch | 0.003579328 | El canciller austriaco Sebastián Kurz ha anunciando que mientras él sea canciller, Austria no va a acoger refugiados de Afganistán. No se caerá en el error de 2015. Con tan contundente respuesta quiere cortar el debate que pretendía iniciar su socio menor de gobierno, los Verdes. |
# CLASIFICACIÓN MANUAL EN EXCEL DE LOS RETWEENTS, CREANDO DOS COLUMNAS, eval Y aval.user Y VUELTA A R
# write.xlsx(d_eval_pR,"d_eval_pR.xlsx")
# clasificación de los 60 retweets
# añadir columnas con posicionamiento y descripcion usuario
d_eval_pR <- read_xlsx("d_eval_pR.xlsx",
sheet = "Sheet1")
d_eval_pR <- d_eval_pR %>% distinct(nodes,values,eval,eval.user)
d_eval_pR %>% flextable()
nodes | values | eval | eval.user |
Alvisepf | 0.035922656 | contra | particular |
pablom_m | 0.033311115 | favor | particular |
anluma99 | 0.016759190 | neutro | particular |
LadyAtila | 0.016567752 | contra | particular |
edubarbaramos | 0.014409429 | favor | particular |
FernndezCrisfnb | 0.014181701 | contra | particular |
VKseDefiende | 0.013510243 | favor | entidad |
PMunozLedo | 0.010663928 | favor | particular |
el_pais | 0.010542357 | neutro | media |
jesusccarrillo | 0.009196730 | neutro | particular |
eduardoinda | 0.007394999 | contra | media |
okdiario | 0.007165851 | contra | media |
aracelibs | 0.006611046 | favor | particular |
ramiroaguilart | 0.006565508 | contra | particular |
jjdesmeules | 0.005983901 | contra | particular |
100_espana | 0.005796025 | contra | particular |
AlanBarrosoA | 0.005761004 | neutro | particular |
Shine_McShine | 0.005297275 | favor | particular |
# Volver a crear nodos y edges
net <- retweets %>%
gt_edges(screen_name, retweet_screen_name, tl = FALSE) %>% # get edges. Put tl (tolower)=FALSE. IMPORTANTE PARA FUSIONAR DESPUEL EL DATA FRAME CON EL CUADRO deg_eval
gt_nodes() %>% # get nodes
gt_collect() # collect
c(edges, nodes) %<-% net
nodes <- nodes2sg(nodes)
edges <- edges2sg(edges)
# Vuelta generar el data frame donde aplicar el gráfico
nodes2 <- nodes %>% left_join(d_eval_pR, by = c("id"="nodes")) %>%
mutate(eval=if_else(is.na(eval), "",eval)) %>%
mutate(color= case_when(eval=="contra" ~ "red",
eval=="favor" ~ "yellow",
eval=="neutro" ~ "green",
eval=="" ~ "")) %>%
mutate(eval.user=if_else(is.na(eval.user), "",eval.user)) %>%
mutate(shapes= case_when(eval.user=="particular" ~ "circle",
eval.user=="media" ~ "square",
eval.user=="asociación" ~ "diamond",
eval.user=="" ~ ""))
set.seed(180662)
sigmajs() %>%
sg_nodes(nodes2, id, label, size=values, color=color, type=shapes) %>%
sg_edges(edges, id, source, target) %>%
sg_layout(layout = igraph::layout_components) %>%
sg_settings(
minNodeSize = .8,
maxNodeSize = 8,
edgeColor = "default",
defaultEdgeColor = "#d3d3d3",
zoomMax = 12
)