R - создать функцию из уже определенной функции, передав новое значение для одного параметра - PullRequest
0 голосов
/ 27 мая 2019

context: я запускаю clusterSVM из пакета swarmSVM в большом наборе данных, который использует функцию stats :: kmeans в качестве функции кластеризации по умолчанию. из-за большого набора данных кластеризация не совсем успешна. Я получаю это сообщение об ошибке: «не сходится за 10 итераций», которое, как я считаю, происходит из алгоритма кластеризации -> Количество итераций недостаточно. Я хотел бы увеличить максимальное число итераций до 50 для сходимости, и мне нужно определить свою собственную функцию кластера.

так что в основном я пытаюсь создать функцию, используя уже определенную функцию, и просто устанавливаю определенное значение для одного из ее параметров.

Моя новая функция называется cluster.fun, и она основана на stats :: kmeans. Мне бы хотелось, чтобы параметр iter.max функции kmeans был равен 50 (по умолчанию 10). нет изменений в других параметрах функции kmeans.

Я думал, что это должно работать:

> cluster.fun = stats::kmeans(iter.max = 50)  ## doesn't work

дает мне эту ошибку:

Ошибка в as.matrix (x): аргумент "x" отсутствует, без значения по умолчанию

Я не хочу снова определять все другие переменные. Просто присваивая новое значение одному из параметров. Можно ли эффективно определить cluster.fun без необходимости повторного определения всех параметров?

это работает, но мне не помогает, так как мне нужно изменить параметр iter.max:

> cluster.fun = stats::kmeans  ## works but doesn't help me as i need to change iter.max parameter
...