R-通过传递一个参数的新值,从一个已定义的函数创建一个函数

时间:2019-05-27 06:54:52

标签: r function parameter-passing cluster-computing svm

上下文:我正在从swarmSVM软件包中的大型数据集上运行clusterSVM,该数据库使用stats :: kmeans函数作为其默认集群功能。由于数据集很大,所以聚类不是很成功。我收到以下错误消息:“没有在10次迭代中收敛”,我认为它源自聚类算法->迭代次数不够。我想将最大迭代次数增加到50以实现收敛,并且需要定义自己的集群函数。

因此,基本上,我试图使用已经定义的函数创建一个函数,并只是为其参数之一设置一个特定值。

我的新函数称为cluster.fun,它基于stats :: kmeans。我希望kmeans函数的iter.max参数为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

0 个答案:

没有答案