## ----WoSCompare_libs, message=FALSE-------------------------------------- library(data.table) library(ggplot2) ## ----WoSCompare_read, message=FALSE-------------------------------------- # Read all lines into a vector: rawData <- readLines("Data/WoS/WoS_DS.txt") # Remove first line of that vector: rawData <- rawData[-1] # Remove last two lines of that vector: rawData <- head(rawData,-2) # Use it to create a data frame: DSData <- read.table(textConnection(rawData),sep = "", col.names = c("Year","Counts","Percent")) DSData ## ----WoSCompare_readFunction--------------------------------------------- readFile <- function(file,colName) { rawData <- readLines(file) rawData <- rawData[-1] rawData <- head(rawData,-2) data <- read.table(textConnection(rawData),sep = "", col.names = c("Year",colName,"Percent")) data$Percent <- NULL return(data) } ## ----WoSCompare_testReadFunction----------------------------------------- AIData <- readFile("Data/WoS/WoS_AI.txt","Artificial Intelligence") DLData <- readFile("Data/WoS/WoS_DL.txt","Deep Learning") DMData <- readFile("Data/WoS/WoS_DM.txt","Data Mining") DSData <- readFile("Data/WoS/WoS_DS.txt","Data Science") ESData <- readFile("Data/WoS/WoS_ES.txt","Expert Systems") MLData <- readFile("Data/WoS/WoS_ML.txt","Machine Learning") NNData <- readFile("Data/WoS/WoS_NN.txt","Neural Networks") ## ----WoSCompare_merge---------------------------------------------------- allData <- Reduce(function(dtf1, dtf2) merge(dtf1,dtf2,by="Year",all=TRUE), list(AIData,DLData,DMData,DSData,ESData,MLData,NNData)) head(allData) ## ----WoSCompare_cleanNAs------------------------------------------------- allData[is.na(allData)] <- 0 str(allData) ## ----WoSCompare_restrictYears-------------------------------------------- allData <- allData[allData$Year >= 1980, ] allData <- allData[allData$Year < 2019, ] ## ----WoSCompare_plot, fig.width=12,fig.height=6-------------------------- # Melt the data in the proper format, with specific column names. melted <- melt(allData,id="Year") colnames(melted) <- c("Year","Term","Count") # Set the thickness depending on the term. melted$thickness <- 1 melted$thickness[melted$Term=="Data.Science"] <- 3 # Plot it with style! ggplot(melted,aes(x=Year,y=Count,colour=Term,group=Term,size=thickness)) + geom_line()+ scale_size(range = c(1,3), guide="none")+ scale_x_continuous("Year",breaks=seq(1980,2018,2))+ guides(colour = guide_legend(override.aes = list(size=3)))+ ggtitle("Terms' Count")+ theme(axis.title=element_text(size=14), axis.text.x=element_text(size=11,angle=-90,vjust=0.5,hjust=1), axis.text.y=element_text(size=12), legend.title=element_text(size=14), legend.text=element_text(size=12), plot.title=element_text(size=22))