Nothing
partition.loss.dendrogram <- function(estimate, x, loss) {
isPSM <- isPSM(x)
height <- partition.loss(estimate, x, loss)
labels <- unique(estimate)
specific.heights <- sapply(labels, function(label) {
subset <- estimate == label
y <- if (isPSM) {
x[subset, subset, drop = FALSE]
} else {
x[, subset, drop = FALSE]
}
partition.loss(estimate[subset], y, loss)
})
min <- min(specific.heights)
range <- max(specific.heights) - min
candidates <- lapply(labels, function(label) {
scale.factor <- if (range > 0) {
(specific.heights[label] - min) / range
} else {
1
}
new.height <- height * scale.factor
class(label) <- "dendrogram"
attr(label, "members") <- 1
attr(label, "height") <- new.height
attr(label, "label") <- as.character(label)
attr(label, "leaf") <- TRUE
label
})
state <- list(estimate, candidates)
while (length(unique(state[[1]])) != 1) {
state <- agglomerate.dendrogram(state, x, loss)
}
state[[2]][[unique(state[[1]])]]
}
agglomerate.dendrogram <- function(state, x, loss) {
estimate <- state[[1]]
candidates <- state[[2]]
tab <- t(apply(combn(unique(estimate), 2), 2, function(pair) {
estimate[estimate == pair[2]] <- pair[1]
c(pair, partition.loss(estimate, x, loss))
}))
which <- which.min(tab[, 3])
pair <- tab[which, 1:2]
estimate[estimate == pair[2]] <- pair[1]
height <- tab[which, 3]
candidates[[pair[1]]] <- {
branch1 <- candidates[[pair[1]]]
branch2 <- candidates[[pair[2]]]
xx <- list()
xx[[1]] <- branch1
xx[[2]] <- branch2
class(xx) <- "dendrogram"
attr(xx, "members") <- attr(branch1, "members") + attr(branch2, "members")
mid1 <- if (isTRUE(attr(branch1, "leaf"))) 0 else attr(branch1, "midpoint")
mid2 <- if (isTRUE(attr(branch2, "leaf"))) 0 else attr(branch2, "midpoint")
attr(xx, "midpoint") <- (mid1 + attr(branch1, "members") + mid2) / 2
attr(xx, "height") <- height
xx
}
candidates[pair[2]] <- list(NULL)
list(estimate, candidates)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.