Мне нужно запустить кластеризацию k-средних с ограничениями mustLink (без ограничения canotLink) в R. После некоторых исследований я обнаружил функцию ckmeans из пакета conclust , которая выглядит быть тем, что я искал. Однако, выполняя небольшой тест на примере кода в документации функции, кажется, что эта функция работает, если есть cantLink, но нет mustLink, но не наоборот.
Так как mustLink и cantLink являются В обоих обязательных аргументах функции ckmeans я заменяю «пустое» ограничение матрицей, содержащей только NA.
В резюме: если я запускаю следующий параметр кода «пустое» ограничение mustLink, я не получаю никакой ошибки
data = matrix(c(0, 1, 1, 0, 0, 0, 1, 1), nrow = 4)
mustLink = matrix(data=NA, nrow = 1, ncol=2)
cantLink = matrix(c(1, 4), nrow = 1)
k = 2
ckmeans(data, k, mustLink, cantLink)
, тогда как если я запускаю аналогичный код, но с «пустым» ограничением canotLink, я получаю ошибку
data = matrix(c(0, 1, 1, 0, 0, 0, 1, 1), nrow = 4)
mustLink = matrix(c(1, 2), nrow = 1)
cantLink = matrix(data=NA, nrow = 1, ncol=2)
k = 2
ckmeans(data, k, mustLink, cantLink)
Есть ли способ использовать эту функцию только с ограничениями mustLink? Если нет, есть ли другая функция / пакет R, которую я могу использовать?
ПРИМЕЧАНИЕ. Я работаю в последней версии R 3.6.3.