Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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("&#39;","'",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("&#39;","'",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>
  
notes/net/titls.txt · Last modified: 2015/07/16 22:13 by vlado
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki