在 R 中使用赋值更新向量
update a vector using assign in R
我正在 R 中实现 k-means。
在一个循环中,我启动了几个向量,这些向量将用于存储属于特定集群的值,如下所示:
for(i in 1:k){
assign(paste("cluster",i,sep=""),vector())
}
然后我想添加到特定的 "cluster" 向量,具体取决于我为变量 getIndex 获得的值。因此,如果 getIndex 等于 2,我想将变量 minimumDistance 添加到名为 cluster2 的向量中。这就是我正在尝试做的事情:
minimumDistance <- min(distanceList)
getIndex <- match(minimumDistance,distanceList)
clusterName <- paste("cluster",getIndex,sep="")
name <- c(name, minimumDistance)
但显然上面的代码不起作用,因为为了附加到我命名的向量,我需要像实例化向量时那样使用赋值。但我不知道如何使用赋值,在使用粘贴时,在附加到向量时。
我不能使用 vector[i] 之类的索引,因为我不知道要添加到那个特定向量的哪个索引。
我需要使用 vector <- c(vector,newItem) 格式,但我不知道如何在 R 中执行此操作。或者如果有任何其他选项,我将非常感谢。如果我使用 Python 我会简单地使用粘贴然后使用附加但我不能在 R 中这样做。提前感谢您的帮助!
你可以这样做:
out <- list()
for (i in 1:nclust) {
# assign some data (in this case a list) to a cluster
assign(paste0("N_", i), list(...))
# here I put all the clusters data in a list
# but you could use a similar statement to do further data manipulation
# ie if you've used a common syntax (here "N_" <index>) to refer to your elements
# you can use get to retrieve them using the same syntax
out[[i]] <- get(paste0("N_", i))
}
如果你想要一个更完整的代码示例,这个link听起来像一个类似的问题emclustr::em_clust_mvn
我正在 R 中实现 k-means。 在一个循环中,我启动了几个向量,这些向量将用于存储属于特定集群的值,如下所示:
for(i in 1:k){
assign(paste("cluster",i,sep=""),vector())
}
然后我想添加到特定的 "cluster" 向量,具体取决于我为变量 getIndex 获得的值。因此,如果 getIndex 等于 2,我想将变量 minimumDistance 添加到名为 cluster2 的向量中。这就是我正在尝试做的事情:
minimumDistance <- min(distanceList)
getIndex <- match(minimumDistance,distanceList)
clusterName <- paste("cluster",getIndex,sep="")
name <- c(name, minimumDistance)
但显然上面的代码不起作用,因为为了附加到我命名的向量,我需要像实例化向量时那样使用赋值。但我不知道如何使用赋值,在使用粘贴时,在附加到向量时。
我不能使用 vector[i] 之类的索引,因为我不知道要添加到那个特定向量的哪个索引。
我需要使用 vector <- c(vector,newItem) 格式,但我不知道如何在 R 中执行此操作。或者如果有任何其他选项,我将非常感谢。如果我使用 Python 我会简单地使用粘贴然后使用附加但我不能在 R 中这样做。提前感谢您的帮助!
你可以这样做:
out <- list()
for (i in 1:nclust) {
# assign some data (in this case a list) to a cluster
assign(paste0("N_", i), list(...))
# here I put all the clusters data in a list
# but you could use a similar statement to do further data manipulation
# ie if you've used a common syntax (here "N_" <index>) to refer to your elements
# you can use get to retrieve them using the same syntax
out[[i]] <- get(paste0("N_", i))
}
如果你想要一个更完整的代码示例,这个link听起来像一个类似的问题emclustr::em_clust_mvn