【发布时间】:2016-03-07 08:02:33
【问题描述】:
我正在 R 中实现 k-means。 在一个循环中,我将启动几个向量,这些向量将用于存储属于特定集群的值,如下所示:
for(i in 1:k){
assign(paste("cluster",i,sep=""),vector())
}
然后我想添加到特定的“簇”向量,具体取决于我为变量 getIndex 获得的值。因此,如果 getIndex 等于 2,我想将变量 minimumDistance 添加到名为 cluster2 的向量中。这就是我想要做的:
minimumDistance <- min(distanceList)
getIndex <- match(minimumDistance,distanceList)
clusterName <- paste("cluster",getIndex,sep="")
name <- c(name, minimumDistance)
但显然上面的代码不起作用,因为为了附加到我命名的向量,我需要像实例化向量时那样使用分配。但我不知道如何使用分配,使用粘贴时,也附加到向量时。
我不能使用诸如 vector[i] 之类的索引,因为我不知道要添加到该特定向量的哪个索引。
我需要使用矢量
【问题讨论】:
-
基本上,R 的方法是创建一个列表,其中列表元素对应于您当前创建的所有集群对象。然后可以直接附加到每个列表元素。
-
非常感谢@mts——我将向量放入一个列表中,它似乎以这种方式工作。谢谢!
标签: r vector append paste assign