User Tools

Site Tools


half_matrix

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
half_matrix [2008/01/29 10:31] heidihalf_matrix [2008/09/23 09:44] (current) heidi
Line 48: Line 48:
 numericMatrix numericMatrix
 </code> </code>
 +
 +===== read half matrix out of full matrix =====
 +  * file: read_tag-halfOutOfFullMatrix.r
 +
 +\\
 +**code:**
 +<code>
 +#----open XML package-----------------------------------------------------------
 +library(XML)
 +
 +#----read data between an XML tag-----------------------------------------------
 +filename = "D:/Master/R_Daten/XML/PairwiseFst_XML2.xml"   #not correct!!!!
 +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 out of a full matrix) to a numeric matrix------
 +  #----split string----
 +  tagData2 <- as.character(xmlText)
 +
 +  tagData3 <- strsplit(tagData2, "\n")
 +  tagMatrix <- as.matrix(as.data.frame(tagData3))
 +  tagMatrix <- gsub(" + ", " ", tagMatrix)   # trim white space
 +
 +  tagMatrix <- tagMatrix[4:(nrow(tagMatrix)-1)]
 +  Data <- strsplit(tagMatrix, " ")
 +
 +  #----to numeric matrix----
 +  Row <- length(Data)
 +
 +  Matrix <- matrix(NA, ncol=1, nrow=Row)
 +  numericList <- as.numeric(Matrix)
 +  numericMatrix <- t(as.matrix(numericList))
 +
 +  for(n in 2:(Row)){
 +    nextrow <- as.matrix(as.data.frame(Data[[n]][3:(n+1)]))
 +    nextrow <- rbind(nextrow, matrix(NA, ncol=1, nrow=(Row-(n-1))))
 +    #nextrow <- nextrow[3:nrow(nextrow),]
 +    numericList <- as.numeric(nextrow)
 +    numericMatrix <- rbind(numericMatrix, t(as.matrix(numericList)))
 +  }
 +  numericMatrix
 +</code>
 +
half_matrix.1201599090.txt.gz · Last modified: 2008/07/22 13:30 (external edit)