st.acr <- function(dis, diag=FALSE, upper = FALSE, path = "shortest", toolong = 1) { library(vegan) #use "shortest" or "extended" edis <- as.matrix(stepacross(dis, path = path, toolong = toolong)) sim <- 1 - edis amax <- max(sim) amin <- min(sim) sim <- (sim-amin)/(amax-amin) dis <- 1 - sim dis2 <- dis[row(dis) > col(dis)] attr(dis2, "Size") <- nrow(dis) attr(dis2, "Labels") <- dimnames(dis)[[1]] attr(dis2, "Diag") <- diag attr(dis2, "Upper") <- upper attr(dis2, "call") <- match.call() class(dis2) <- "dist" return(dis2) }