This shows you the differences between two versions of the page.
— |
notes:net:titls [2015/07/16 22:13] (current) vlado created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== List of titles for WoS islands ====== | ||
+ | |||
+ | ===== Second version (September 2013) ===== | ||
+ | |||
+ | WoS2Pajek 1.2 (September 2013) creates also a csv file ''titles.csv'' with works names and their title, first author, journal and year of publication. This file can be merged with a subnetwork (island) net file to produce a list of titles of works contained in the subnetwork. It uses the Python csv library. | ||
+ | |||
+ | <code> | ||
+ | > setwd("E:/Data/Centrality/net") | ||
+ | > Code <- function(x) paste(substr(unlist(strsplit(x," ")),1,1),collapse="") | ||
+ | > T <- read.csv('../WoS/titles.csv',sep=";",colClasses="character") | ||
+ | > dim(T) | ||
+ | [1] 38535 6 | ||
+ | > names(T) | ||
+ | [1] "name" "WoSline" "author" "title" "journal" "year" | ||
+ | > T$WoSline <- as.integer(T$WoSline) | ||
+ | > T$year <- as.integer(T$year) | ||
+ | > n <- nrow(T) | ||
+ | > cod <- character(n) | ||
+ | > for(i in 1:n) cod[i] <- Code(as.character(T$journal[i])) | ||
+ | > T$code <- cod | ||
+ | > save(T,file="titlesCentr.Rdata") | ||
+ | > dim(T) | ||
+ | [1] 38535 7 | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | # | ||
+ | # description produces a csv file csvFile containing a table with columns | ||
+ | # (name, WoSline, author, title, journal, year, code) | ||
+ | # for vertices of a subnetwork from file netFile. | ||
+ | # The titles for all (DC>0) vertices are stored in the table T. | ||
+ | # Since for vertices with DC=0 the title is not available it takes '***'. | ||
+ | # | ||
+ | # Vladimir Batagelj, September 7, 2013 / August 19, 2013 | ||
+ | # | ||
+ | description <- function(netFile,csvFile,T){ | ||
+ | f <- function(L){ | ||
+ | s <- unlist(strsplit(L,"[[:space:]]+")) | ||
+ | if(s[1]=="") t <- s[3] else t <- s[2] | ||
+ | t <- substr(t,2,nchar(t)-1) | ||
+ | if(substr(t,1,1)=="=") t <- substr(t,2,nchar(t)) | ||
+ | return(t) | ||
+ | } | ||
+ | net <- file(netFile,"r") | ||
+ | L <- readLines(net,n=1) | ||
+ | n <- as.integer(unlist(strsplit(L,"[[:space:]]+"))[2]) | ||
+ | S <- readLines(net,n=n); close(net) | ||
+ | N <- gsub("'","'",unlist(lapply(S,f))) | ||
+ | nn <- length(N); tit <- character(nn); aut <- character(nn); jrn <- character(nn); | ||
+ | cod <- character(nn); wos <- integer(nn); yer <- integer(nn) | ||
+ | for(k in 1:nn){j <- which(T$name==N[k]); | ||
+ | tit[k] <- ifelse(length(j)==0,NA,T$title[j]) | ||
+ | aut[k] <- ifelse(length(j)==0,NA,T$author[j]) | ||
+ | wos[k] <- ifelse(length(j)==0,NA,T$WoSline[j]) | ||
+ | jrn[k] <- ifelse(length(j)==0,NA,T$journal[j]) | ||
+ | cod[k] <- ifelse(length(j)==0,NA,T$code[j]) | ||
+ | yer[k] <- ifelse(length(j)==0,NA,T$year[j]) | ||
+ | if(is.na(yer[k])){ | ||
+ | l <- regexpr("(",N[k],fixed=TRUE)[1]+1 | ||
+ | r <- regexpr(")",N[k],fixed=TRUE)[1]-1 | ||
+ | yer[k] <- as.integer(substr(N[k],l,r)) | ||
+ | } | ||
+ | } | ||
+ | D <- data.frame(name=as.character(N),WoSline=wos,author=as.character(aut), | ||
+ | title=as.character(tit),journal=as.character(jrn),year=yer,code=as.character(cod)) | ||
+ | write.csv2(D,file=csvFile,fileEncoding="UTF-8",row.names=FALSE,quote=FALSE) | ||
+ | return(D) | ||
+ | } | ||
+ | </code> | ||
+ | Application: | ||
+ | <code> | ||
+ | > setwd("E:/Data/Centrality/net") | ||
+ | > load("titlesCentr.Rdata") | ||
+ | > names(T) | ||
+ | [1] "name" "WoSline" "author" "title" "journal" "year" "code" | ||
+ | > dim(T) | ||
+ | [1] 38535 7 | ||
+ | > source("E:\\Data\\Centrality\\net\\res\\description.R") | ||
+ | > d <- description("./res/island2.net","./res/island2new.csv",T) | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== First version (August 2013) ===== | ||
+ | |||
+ | |||
+ | WoS2Pajek 1.2 (August 2013) creates also a csv file ''titles.csv'' with works names and their titles. This file can be merged with a subnetwork (island) net file to produce a list of titles of works contained in the subnetwork. | ||
+ | |||
+ | <code> | ||
+ | > setwd("D:/Data/Centrality/WoS") | ||
+ | > T <- read.csv("titles.csv",header=FALSE,sep="รท",quote="",colClasses="character") | ||
+ | > t <- T$V1[1] | ||
+ | > s <- substr(t,23,23) | ||
+ | > U <- as.data.frame(matrix(unlist(strsplit(T$V1,s)),ncol=2,byrow=TRUE)) | ||
+ | > names(U) <- c("name","title") | ||
+ | > library(gdata) | ||
+ | > U$title <- trim(U$title) | ||
+ | > T$name <- as.character(U$name) | ||
+ | > T$title <- as.character(U$title) | ||
+ | > write.table(T,file="CentTitles.csv",sep=";",qmethod="double",row.names=FALSE) | ||
+ | > save(T,file="CentTitles.Rdata") | ||
+ | |||
+ | > write.table(T,file="CentTit.csv",sep=";",fileEncoding="UTF-8",qmethod="double",row.names=FALSE,quote=FALSE) | ||
+ | </code> | ||
+ | |||
+ | Function in R to create a list: | ||
+ | <code> | ||
+ | # | ||
+ | # description produces a csv file csvFile containing a table with columns | ||
+ | # (name, year, title) for vertices of a subnetwork from file netFile. | ||
+ | # The titles for all (DC>0) vertices are stored in the table T. | ||
+ | # Since for vertices with DC=0 the title is not available it takes '***'. | ||
+ | # | ||
+ | # Vladimir Batagelj, August 19, 2013 | ||
+ | # | ||
+ | description <- function(netFile,csvFile,T){ | ||
+ | f <- function(L){ | ||
+ | s <- unlist(strsplit(L,"[[:space:]]+")) | ||
+ | if(s[1]=="") t <- s[3] else t <- s[2] | ||
+ | t <- substr(t,2,nchar(t)-1) | ||
+ | if(substr(t,1,1)=="=") t <- substr(t,2,nchar(t)) | ||
+ | return(t) | ||
+ | } | ||
+ | getYear <- function(x){ | ||
+ | i <- regexpr('\\(',x)[1]+1; j <- regexpr('\\)',x)[1]-1 | ||
+ | ifelse(i<j,as.integer(substr(x,i,j)),-1) | ||
+ | } | ||
+ | net <- file(netFile,"r") | ||
+ | L <- readLines(net,n=1) | ||
+ | n <- as.integer(unlist(strsplit(L,"[[:space:]]+"))[2]) | ||
+ | S <- readLines(net,n=n); close(net) | ||
+ | N <- gsub("'","'",unlist(lapply(S,f))) | ||
+ | year <- unlist(lapply(N,getYear)) | ||
+ | nn <- length(N); tit <- character(nn) | ||
+ | for(k in 1:nn){j <- which(T$name==N[k]); tit[k] <- ifelse(length(j)==0,"***",T$title[j])} | ||
+ | D <- data.frame(name=as.character(N),year=year,title=as.character(tit)) | ||
+ | write.table(D,file=csvFile,sep=";",fileEncoding="UTF-8",qmethod="double",row.names=FALSE) | ||
+ | return(D) | ||
+ | } | ||
+ | |||
+ | # setwd("D:/Data/Centrality/net") | ||
+ | # source("D:\\Data\\Centrality\\net\\res\\description.R") | ||
+ | # T <- read.csv("CentTitles.csv",header=TRUE,sep=";",colClasses="character") | ||
+ | # d <- description("mainPath.net","mainPath.csv",T) | ||
+ | # d <- description("islands2.net","islands2.csv",T) | ||
+ | </code> | ||
+ | |||
+ | Application: | ||
+ | <code> | ||
+ | setwd("D:/Data/Centrality/net") | ||
+ | source("D:\\Data\\Centrality\\net\\res\\description.R") | ||
+ | T <- read.csv("../WoS/CentTitles.csv",header=TRUE,sep=";",colClasses="character") | ||
+ | d <- description("./res/mainPath.net","./res/mainPath.csv",T) | ||
+ | </code> | ||
+ | Instead of the command ''T <- read.csv'' we can use also | ||
+ | <code> | ||
+ | T <- load("CentTitles.Rdata") | ||
+ | </code> | ||