1 Introducción

1.1 Sobre esta notebook

En esta notebook se introduce el uso de los datos de InfluScience 2, incluyendo varios estudios de caso para facilitar el trabajo con este dataset. Los datos no están incluidos en el repositorio, por lo que para replicar esta notebook neceistas descargarlos de la web.

1.2 Sobre los datos

El dataset del ranking de InfluScience 2 está compuesto de 8 archivos delimitados por tabuladores:

  • 1-Publicaciones.tsv (5750x11) - Publicaciones con más InfluRatio por campo ESI

  • 2-Autores.tsv (6550x15) - Autores españoles con más InfluRatio por campo ESI

  • 3-Publicaciones-Autores.tsv (157380x13) - Publicaciones de los autores españoles con más InfluRatio por campo ESI

  • 4-Org_master_list.tsv (163x6) - Universidades y hospitales españoles por región

  • 5-Org_indicators.tsv (3079x12) - Indicadores altmétricos de las universidades y hospitales españoles por campo ESI

  • 6-Publications_Org.tsv (24936x13) - Publicaciones con más InfluRatio de las universidades y hospitales españoles por campo ESI

  • 7-ODS_Indicators (16x10) - Indicadores altmétricos de las publicaciones agrupadas por ODS

  • 8-ODS_Selected_Papers.tsv (2805x13) - Publicaciones con más InfluRatio por ODS y campo ESI

2 Paquetes

Para este análisis de prueba solo necesitas usar los paquetes dplyr y ggplot2.

library(dplyr)
library(ggplot2)
library(treemapify)

3 Lectura

Todos los archivos del dataset de InfluScience 2 están en formato delimitado por tabuladores, sin calificadores y con codificación UTF-8. Puedes importarlos rápidamente con read.delim().

df_pub <- read.delim('data/1-Publicaciones.tsv',
                     quote = '',
                     fileEncoding = 'UTF-8')
head(df_pub)

4 Casos prácticos

4.1 Indicadores de ODS

En este primer ejemplo vamos usar los indicadores por ODS del archivo 7-ODS_Indicators.tsv.

df_ods <- read.delim('data/7-ODS_Indicators.tsv',
                     quote = '',
                     fileEncoding = 'UTF-8')

head(df_ods)

Antes de usar este dataset, la variable de ODS es transformada en factor.

df_ods$ods <- factor(df_ods$ods, sort(df_ods$ods), ordered=TRUE)

Mediante un treemap se representa el InfluRatio de los ODS, usando el color para indicar el total de menciones en informes.

ggplot(data=df_ods, aes(area=influratio, fill=total_po, label=ods)) +
  geom_treemap() +
  geom_treemap_text(colour='grey70', place='centre', fontface='italic', grow=TRUE) +
  labs(x='', y='', fill='Menciones en informes') +
  guides(fill=guide_colorbar(barwidth = 15, title.vjust = 0.75)) +
  scale_fill_viridis_c(option = 'G') +
  theme(legend.position='bottom')

4.2 Indicadores altmetrics de instituciones

En este caso vamos a unir los datos de las instituciones españolas con sus respectivos indicadores altmetrics usando los datasets 4-Org_master_list.tsv y 5-Org_indicators.tsv.

df_org <- read.delim('data/4-Org_master_list.tsv',
                     quote = '',
                     fileEncoding = 'UTF-8')
head(df_org)
df_alt <- read.delim('data/5-Org_indicators.tsv',
                     quote = '',
                     fileEncoding = 'UTF-8')
head(df_alt)

Mediante la columna institution_id ambos dataset son combinados y con este dataframe generamos diferentes visualizaciones.

df_org_alt <- df_org %>%
  inner_join(df_alt, by = 'institution_id')

head(df_org_alt)

El siguiente gráfico se corresponde a los boxplots de menciones de Wikipedia de las instituciones diferenciando por tipo de universidad. Se utiliza el indicador global, sin diferenciar por tipo de campo.

ggplot(data=df_org_alt[which(df_org_alt$esi=='Global'),], aes(x='', y=total_wp, fill=organization_type)) +
  geom_boxplot() +
  labs(x='', y='Menciones de Wikipedia', fill='Color') +
  theme(legend.position='bottom') +
  facet_wrap(organization_type~., scales='free')

Ahora generamos los gráficos de densidad de las menciones de Twitter y Wikipedia de todas las instituciones por campo de conocimiento.

ggplot() +
  geom_density(data=df_org_alt[which(df_org_alt$esi!='Global'),], aes(x=total_tw, fill='Twitter'), alpha=0.7) +
  geom_density(data=df_org_alt[which(df_org_alt$esi!='Global'),], aes(x=total_wp, fill='Wikipedia'), alpha=0.7) +
  scale_x_log10() +
  scale_fill_manual(values=c('Twitter'='#2ac3e7', 'Wikipedia'='#dddddd')) +
  labs(x='', y='', fill='Altmetric') +
  theme(legend.position='bottom') +
  facet_wrap(esi~., scales='free', nrow = 7)

Por último lugar, está el scatter plot de las instituciones con las menciones de noticias en el eje X, las menciones de informes en el eje Y, el número de publicaciones en el color de los puntos y el InfluRatio en el tamaño de los mismos.

ggplot() +
  geom_point(data=df_org_alt[which(df_org_alt$esi=='Global'),], aes(x=total_nw, y=total_po, color=aas_publications, size=total_aas)) +
  geom_text(data=df_org_alt[which(df_org_alt$esi=='Global' & df_org_alt$total_aas>150000),], aes(x=total_nw, y=total_po, label=acronym, size=total_aas), vjust=1, hjust=1) +
  labs(x='Menciones de noticias', y='Menciones de informes', color='Publicaciones', size='InfluRatio') +
  guides(color = guide_colorbar(barwidth = 10, title.vjust = 0.75)) +
  theme(legend.position='bottom',
        legend.box='vertical')

4.3 Indicadores altmetrics de influsciencers andaluces

Para este último caso vamos a emplear los datasets 2-Autores.tsv y 4-Org_master_list.tsv (ya importado en el caso anterior).

df_aut <- read.delim('data/2-Autores.tsv',
                     quote = '',
                     fileEncoding = 'UTF-8')
head(df_aut)

Al combinar los autores con las instituciones algunos se pierden debido a que la normalización de instituciones se ha llevado a cabo a nivel de universidad y hospital.

df_org_aut <- df_org %>%
  inner_join(df_aut, by = c('name'='organization'))

head(df_org_aut)

Mediante gráficos de boxplot se visualizan cuáles son los InfluSciencers de universidades andaluzas.

ggplot(data=df_org_aut[which(df_org_aut$region=='ANDALUCÍA' & df_org_aut$organization_type=='University' & df_org_aut$esi=='Global'),], aes(y=total_aas, x=city, fill=city)) +
  geom_boxplot(alpha=0.6) +
  geom_point() +
  geom_text(data=df_org_aut[which(df_org_aut$region=='ANDALUCÍA' & df_org_aut$organization_type=='University' & df_org_aut$esi=='Global' & df_org_aut$total_aas>4000),], aes(y=total_aas, x=city, label=name.y), vjust=1, hjust=-0.05) +
  labs(x='Ciudad', y='InfluRatio', color='') +
  scale_fill_viridis_d(option='F') +
  theme_minimal() +
  theme(legend.position='none')

Por último, se repite el análisis anterior pero para cada campo de conocimiento.

ggplot(data=df_org_aut[which(df_org_aut$region=='ANDALUCÍA' & df_org_aut$organization_type=='University' & df_org_aut$esi!='Global'),], aes(y=total_aas, x=city, fill=city)) +
  geom_boxplot(alpha=0.6) +
  labs(x='Ciudad', y='InfluRatio', fill='') +
  scale_fill_viridis_d(option='F') +
  guides(fill = guide_legend(nrow=1, label.theme=element_text(size=6))) +
  theme(legend.position='top',
        axis.text.x=element_blank()) +
  facet_wrap(esi~., scales='free',  nrow=7)