R一组kmeans对象

时间:2013-04-15 21:25:38

标签: r list collections vector k-means

我是R的新手,我的大部分经验都是Java。我正在尝试执行以下操作:

clusterWeeks <- function()
{
  kmV = list()               #a list of kmeans objects from each week
  for(i in 1:5)
  {
    windows()
    kmV.append(clusterData(i))     #clusterData(i) returns a kmeans object
  }
}

出于某种原因,这不起作用。我希望能够通过kmV[1], kmV[2], ... kmV[5]

访问这些对象
  1. 此任务的R中适当的数据结构是什么?

2 个答案:

答案 0 :(得分:3)

您需要创建一个列表来保存每个单独的对象。否则你只是覆盖并只返回最后一个:

clusterWeeks <- function()
{
  kmV = vector("list", 5)         # a 5 element list of empty items
  for(i in 1:5)
  {
    windows()
    kmV[[i]] <- clusterData(i)    #clusterData(i) returns a kmeans object
  }
}

你显然来自一种语言object.function是可接受的语法,但在R中不起作用。

答案 1 :(得分:0)

根据您的代码,我会这样做:

clusterWeeks <- function(){
  kmV <- c()
  for(i in 1:5)
  {
    kmV <- c(kmV, i)
  }
  return(kmV)
}

小例子:

test <- clusterWeeks()
test[2]
2