User Tools

Site Tools


half_matrix

This is an old revision of the document!


read half matrix data

  • file: read_tag-halfMatrix.r
  • document page: 37


code:

#----open XML package-------------------------------------------------
library(XML)

#----read data between an XML tag-------------------------------------
filename = "D:/Heidi/Master/R_Daten/XML/PairwiseFst_XML2.xml"
tag = "//Fst"
doc = xmlTreeParse(filename, useInternal = TRUE)
ch = getNodeSet(doc, tag)

subDoc = xmlDoc(ch[[1]])
tagData <- xpathApply(subDoc, tag, xmlValue)
free(subDoc)


#----convert string data (half matrix) to a numeric matrix-------------
#----split string----
tagData2 <- as.character(tagData)

tagData3 <- strsplit(tagData2, "\n")
tagMatrix <- as.matrix(as.data.frame(tagData3))
tagMatrix <- tagMatrix[4:nrow(tagMatrix)]
tagMatrix  <- gsub(" + ", " ", tagMatrix)   # trim white space
Data <- strsplit(tagMatrix, " ")

#----to numeric matrix----
Row <- length(Data)

Matrix <- as.matrix(as.data.frame(Data[1]))
Matrix <- rbind(Matrix, matrix(NA, ncol=1, nrow=(Row-1)))
Matrix <- Matrix[3:nrow(Matrix),]
numericList <- as.numeric(Matrix)
numericMatrix <- t(as.matrix(numericList))

for(n in 2:(Row)){
  nextrow <- as.matrix(as.data.frame(Data[n]))
  nextrow <- rbind(nextrow, matrix(NA, ncol=1, nrow=(Row-n)))
  nextrow <- nextrow[3:nrow(nextrow),]
  numericList <- as.numeric(nextrow)
  numericMatrix <- rbind(numericMatrix, t(as.matrix(numericList)))
}
numericMatrix
half_matrix.1216726266.txt.gz · Last modified: 2008/09/23 09:44 (external edit)