knitr::opts_chunk$set(fig.height = 4, fig.width =7, 
                      fig.align = 'center', out.width = '100%')
# knitr::spin("scimetr.R", knit = FALSE)
# knitr::purl("scimetr.Rmd", documentation = 2)
# options(digits = 5)

This vignette (a working draft, in Spanish) tries to illustrate the use of the scimetr package ...

library(scimetr)

Este paquete implementa herramientas para la investigación en cienciometría y bibliometría. Actualmente incluye rutinas para importar datos bibliográficos de Clarivate Analytics Web of Science (WoS) y realizar análisis bibliométricos.

Un listado de otros paquetes de utilidad para el análisis de este tipo de datos está disponible aquí.

Instalación

Para instalar el paquete sería recomendable en primer lugar instalar las dependencias:

install.packages(c('dplyr', 'dbplyr','RSQLite', 'lazyeval', 'stringr', 'ggplot2', 'tidyr'. 'rmarkdown'))

Como de momento no está disponible en CRAN, habría que instalar la versión de desarrollo en GitHub (en el repositorio rubenfcasal/scimetr). En Windows bastaría con instalar la versión binaria del paquete scimetr_X.Y.Z.zip (disponible aquí), alternativamente se puede instalar directamente de GitHub:

# install.packages("devtools")
devtools::install_github("rubenfcasal/scimetr")

Una vez instalado ya podríamos cargar el paquete.

Carga de datos

Nos centraremos únicamente en la importación de los datos de publicaciones de WoS) en formato de texto. En primer lugar habría que descargar los correspondientes ficheros de la web de WoS, por ejemplo siguiendo los pasos descritos aquí.

Alternativamente se puede crear una base de datos empleando la API de WoS para posteriormente importarla a R empleando la función ImportDB.wos(). Para ello habría que disponer de acceso a esta API y seguir los pasos descritos aquí.

Cargar datos de directorio

Se pueden cargar automáticamente los archivos WoS (que por defecto tienen una limitación de 500 registros) de un subdirectorio:

dir("UDC_2008-2017 (01-02-2019)", pattern='*.txt')
# dput(dir("UDC_2008-2017 (01-02-2019)", pattern='*.txt'))
c("savedrecs01.txt", "savedrecs02.txt", "savedrecs03.txt", "savedrecs04.txt", 
"savedrecs05.txt", "savedrecs06.txt", "savedrecs07.txt", "savedrecs08.txt", 
"savedrecs09.txt", "savedrecs10.txt", "savedrecs11.txt", "savedrecs12.txt", 
"savedrecs13.txt", "savedrecs14.txt", "savedrecs15.txt")

Para combinar los ficheros en un data.frame se emplea la función ImportSources.wos():

wos.txt <- ImportSources.wos("UDC_2008-2017 (01-02-2019)", other = "ignore")

A continuación habrá que crear la base de datos con la función CreateDB.wos(), como se muestra más adelante.

Datos de ejemplo

En el paquete se incluyen dos conjuntos de datos de ejemplo (obtenidos empleando la función ImportSources.wos()) correspondientes a la búsqueda en WoS por el campo Organización-Consolidada de la UDC (Organization-Enhaced: OG = Universidade da Coruna):

Variables WoS:

# View(wosdf2) # En RStudio...
variable.labels <- attr(wosdf, "variable.labels")
knitr::kable(as.data.frame(variable.labels)) # caption = "Variable labels"

Creación de la base de datos

Para crear la base de datos se emplea la función CreateDB.wos():

db <- CreateDB.wos(wosdf2, label = "Mathematics_UDC_2008-2017 (01-02-2019)")
str(db, 1)

Sumarios

Se pueden realizar sumarios globales o por años...

Sumario summary.wos.db()

res1 <- summary(db)
options(digits = 5)
res1

Sumario por años summary_year()

res2 <- summary_year(db)
res2

Gráficos

Se emplea la librería ggplot2...

Gráficos de la base de datos plot.wos.db()

plot(db)

Gráficos sumario plot.summary.wos.db()

plot(res1)

plot(res1, pie = TRUE)

Gráficos sumario por años plot.summary.year()

plot(res2)

plot(res2, boxplot = TRUE)

Filtrado

Se combinan las funciones get.id<Tabla>() (se puede emplear cualquier variable de la correspondiente tabla; multiple conditions are combined with &, see e.g. dplyr::filter()) con la función get.idDocs().

Funciones get

Obtener documentos (de autores, revistas, ...)

Los indices anteriores se pueden combinar en get.idDocs()

idocs <- get.idDocs(db, idAuthors = idAuthor)
idocs

Los índices de documentos se pueden utilizar como filtro p.e. en summary.wos.db().

Sumarios filtrados

Obtener sumario de autor(es):

summary(db, idocs)

Obtener sumario de autor(es) por años:

summary_year(db, idocs)

Indices de autores

Obtener índices de múltiples autores

TC.authors(db, idAuthors)

Trabajo futuro



rubenfcasal/scimetr documentation built on April 27, 2023, 3:42 p.m.