[R-sig-eco] subsetting lower triangle distance matrix based on variable in another object
Jari Oksanen
jari.oksanen at oulu.fi
Wed Jul 31 07:13:18 CEST 2013
Kendra,
Subset a matrix an convert to dist. You must subset both rows and columns in the same way, and therefore you must use subsetting index instead of a subset() function. Let k be a vector that is TRUE for selected items; as.dist(yoursymmetricmatrix[k, k]) is what you are looking for.
Cheers, Jari Oksanen
---- alkuperäinen viesti ----
Lähettäjä: Mitchell, Kendra
Lähetetty: 31.07.2013, 02:38
Vastaanottaja: "<r-sig-ecology at r-project.org>" <r-sig-ecology at r-project.org>
Aihe: [R-sig-eco] subsetting lower triangle distance matrix based on variable in another object
I have a number of dissimilarity matrices built in another program that I'd like to subset then run NMS.
#read in distance matrix
b_bc03 <-data.matrix(read.table("bac_final.an.thetayc.0.03.lt.ave.dist", row.names=1, header=T, fill=TRUE)) # creates a 736x736 double matrix
#read in environmental variables
bac_env<-read.csv("bac_samples.csv", row.names=1, header=T) # 736 obs. of 6 variables
#The only way that I've figured out how to subset a lt matrix is to convert to dist object first
bc_dist<-as.dist(b_bc03) # dist[27048]
tx_dist<-subset(bc_dist, bac_env$zone=="TX") # numeric[54316]
Here is where it falls apart, the subset doesn't keep the labels, just the values so I can't convert it back to a distance matrix. I've looked through ecodist but can't find anyway in that package to select only certain samples.
Help please?
thanks
Kendra
--
Kendra Maas Mitchell, Ph.D.
Post Doctoral Research Fellow
University of British Columbia
604-822-5646
[[alternative HTML version deleted]]
_______________________________________________
R-sig-ecology mailing list
R-sig-ecology at r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-ecology
More information about the R-sig-ecology
mailing list