Ответ 1
Прочитайте справку по функциям, которые вы используете. ?hclust
довольно ясно, что первый аргумент d
является объектом несходства, а не матрицей:
Arguments:
d: a dissimilarity structure as produced by ‘dist’.
Update
Поскольку OP теперь обновил свой вопрос, в чем нуждаются
hclustfunc <- function(x) hclust(x, method="complete")
distfunc <- function(x) as.dist((1-cor(t(x)))/2)
d <- distfunc(mydata)
fit <- hclustfunc(d)
Оригинальные
Вы хотите
hclustfunc <- function(x, method = "complete", dmeth = "euclidean") {
hclust(dist(x, method = dmeth), method = method)
}
а затем
fit <- hclustfunc(mydata)
работает как ожидалось. Обратите внимание, что теперь вы можете передать метод коэффициента несходства как dmeth
и метод кластеризации.