R-在嵌套函数中使用可选参数,如';kmeans';

R-在嵌套函数中使用可选参数,如';kmeans';,r,list,k-means,optional-parameters,nested-function,R,List,K Means,Optional Parameters,Nested Function,我正在尝试创建一个使用tm包中的dist和kmeans的函数 我的目标是提供一个将参数作为列表的机会,主要是这样,它可以用作上述函数的参数 有一个例子: tmpClust<-function(corpora, dist.args=list(method = "manhattan"), k, kmeans.args=list(algorithm="Lloyd")) { dtm<-DocumentTermMatrix(corpora) dm<-dist(dtm,

我正在尝试创建一个使用
tm
包中的
dist
kmeans
的函数

我的目标是提供一个将参数作为列表的机会,主要是这样,它可以用作上述函数的参数

有一个例子:

tmpClust<-function(corpora, dist.args=list(method = "manhattan"), k, kmeans.args=list(algorithm="Lloyd"))
{
    dtm<-DocumentTermMatrix(corpora)

    dm<-dist(dtm, dist.args)

    x<-kmeans(dm, k, kmeans.args)

    x$cluster
}
data(crude)
tmpClust(crude, k=3)

tmpclust不幸的是,R习惯用法有点复杂,比如
do.call(f,list(所有参数))
你能把它变成一个可复制的例子吗?@Frank,我在函数中改为
xy你的目标应该是一个一级列表<代码>列表(dm,k,kmeans.args)
是嵌套的(一个列表在另一个列表中),所以你想要
c(list(dm,k,kmeans.args)
或类似的东西。@Frank:我想你的意思是
c(dm,k,kmeans.args)
,但这是正确的答案:不幸的是,R的习惯用法有点复杂,就像
do.call(f,list)(所有的参数))
你能把这变成一个可复制的例子吗?@Frank,我在函数中更改为
xy我们的目标应该是一个一级列表<代码>列表(dm,k,kmeans.args)
是嵌套的(一个列表在另一个列表中),因此您需要
c(list(dm,k),kmeans.args)
或类似的东西。@Frank:我想您的意思是
c(dm,k,kmeans.args)
,但这是正确的答案: