r - Distance matrix -


i trying determine distance between everypoint in 1 data set vs other data set in r. each data set has x , y parameter. have been converting data sets data frames , finding distance. current code creates large matrix due listing both data sets columns , rows. need identify specific part of matrix care answers, there way put dsa columns , dsb rows. whould cut matrix in 1/4 since data sets contain thousands of points each whould cut down time algorithum run

here code using

tumor<-data.frame(dsa[,c ("x_parameter","y_parameter")]) cells<-data.frame(dsb[,c ("x_parameter","y_parameter")]) distances<-as.matrix(dist(rbind(tumor,cells))) row.start<-nrow(tumor)+1 row.end<-nrow(tumor)+nrow(cells) col.start<-1 col.end<-nrow(tumor) distances[row.start:row.end, col.start:col.end] d<- distances[row.start:row.end, col.start:col.end] 

try flexclust::dist2:

n_tumor = 2000 n_cells = 2000 tumor = matrix(runif(n_tumor * 2), n_tumor, ) cells = matrix(runif(n_cells * 2), n_cells, )  t_dist = system.time({   distances<-as.matrix(dist(rbind(tumor,cells)))   row.start<-nrow(tumor)+1   row.end<-nrow(tumor)+nrow(cells)   col.start<-1   col.end<-nrow(tumor)   d <- distances[row.start:row.end, col.start:col.end] })[3]  require(flexclust) t_dist2 = system.time({d2 = dist2(x = cells, y = tumor, method = "euclidean")})[3]  t_dist # 1.477 t_dist2 # 0.244 identical(unname(d), d2) # true 

edit: alternative proxy::dist.


Comments