The topic you selected (with a description of why you are interested in such a topic) The keyword I used to search for paper entries on Scopus is “classroom technology”:
I meant to look for papers that discuss the adoption of technical or technological devices and/or means in classroom teaching contexts (or the lack thereof). I am interested in this topic because I perceive a wider scale of technology integration into classroom in recent years, especially after the pandemic.
The timespan (why):
I limited the timespan to be the most recent 10 years, that is, from 2014 to 2023. I hoped to see a trend in the number of paper published on this topic, and more specifically, the increase in ways of classroom technology integration as years go by.
Type of publication (journal article, conference papers, book chapters) mentioning also why you selected this topic:
I also limited the type of publication to be journal articles only, and language to be English only. I wanted to get rid of those textbook or handbook chapters, which more likely describes the theoretical basis of technology use instead of analyzing the condition of its real-life applications. These qualifiers returned a decent number of papers, i.e.154.
What are the dimensions of the initial adjacency list matrix, and what those number represent (in actual English)?
The dimensions of the initial adjacency list matrix is [154,11]. It means this dataset contains 154 papers, and at least one of the papers is co-authored by 11 people.
After generating your edgelist, how many authors do you have in your resulting network?
There are 403 unique authors in the network, since the network has 403 vertices.
How many connections are there in such a network?
There are 597 connections in the network, since the network has 597 edges.
# read the dataset downloaded from Scopus
a <- read.csv("/Users/joyceshuai/Desktop/SSNA/classtech_tenyrs.csv")
# only column 3 contains authors ID, which is the authorship information needed here
a <- as.data.frame(a[,3])
colnames(a) <- "Authors"
library(splitstackshape)
# split authors in the column into separate columns
a1 <- cSplit(a, splitCols = "Authors", sep = ";", direction = "wide", drop = TRUE)
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
## Warning in type.convert.default(X[[i]], ...): 'as.is' should be specified by
## the caller; using TRUE
# turn a1 into matrix form
mat <- as.matrix(a1)
dim(mat)
## [1] 154 11
# use a for loop to store co-authorship information in an edgelist
edgelist <- matrix(NA, 1, 2)
for (i in 1:(ncol(mat)-1)){
indiv_edgelist <- cbind(mat[,i], c(mat[,-c(1:i)]))
edgelist <- rbind(edgelist, indiv_edgelist)
edgelist <- edgelist[!is.na(edgelist[,2]),]
edgelist <- edgelist[edgelist[,2]!="",]
}
dim(edgelist)
## [1] 597 2
head(edgelist)
## [,1] [,2]
## [1,] 57209211014 55505853200
## [2,] 57206698047 36154796800
## [3,] 57222036217 57202216646
## [4,] 57672771100 57194830879
## [5,] 56285357900 56575051400
## [6,] 8247022600 6507838357
# turn the edgelist into a graph
library(igraph)
##
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
##
## decompose, spectrum
## The following object is masked from 'package:base':
##
## union
g <- graph.data.frame(edgelist, directed = FALSE)
dim(g)
## NULL
x11()
plot(g)