如何在数据框的单独列中添加集群 ID?
How to add cluster id in a seperate column of a dataframe?
我用 hclust 生成了树状图并将其分成两个簇。我从图中知道哪一行对应于哪个集群。我想要做的是在数据框中创建一个单独的列,如果该行对应于第一个集群,它将包含元素 "class-1",如果对应于第二个集群,它将包含元素 "class-2"。
没有示例数据集,我将使用内置的 USArrests
。
如果您使用标签 "class-1"
和 "class-2"
创建一列 class factor
,R 会自动将它们分配给值 1
和 2
,分别。
hc <- hclust(dist(USArrests), "ave") # taken from the help page ?hclust
memb <- cutree(hc, k = 2) #
res <- cbind(USArrests, Class = factor(unname(memb), labels = c("class-1", "class-2")))
head(res)
# Murder Assault UrbanPop Rape Class
#Alabama 13.2 236 58 21.2 class-1
#Alaska 10.0 263 48 44.5 class-1
#Arizona 8.1 294 80 31.0 class-1
#Arkansas 8.8 190 50 19.5 class-2
#California 9.0 276 91 40.6 class-1
#Colorado 7.9 204 78 38.7 class-2
我用 hclust 生成了树状图并将其分成两个簇。我从图中知道哪一行对应于哪个集群。我想要做的是在数据框中创建一个单独的列,如果该行对应于第一个集群,它将包含元素 "class-1",如果对应于第二个集群,它将包含元素 "class-2"。
没有示例数据集,我将使用内置的 USArrests
。
如果您使用标签 "class-1"
和 "class-2"
创建一列 class factor
,R 会自动将它们分配给值 1
和 2
,分别。
hc <- hclust(dist(USArrests), "ave") # taken from the help page ?hclust
memb <- cutree(hc, k = 2) #
res <- cbind(USArrests, Class = factor(unname(memb), labels = c("class-1", "class-2")))
head(res)
# Murder Assault UrbanPop Rape Class
#Alabama 13.2 236 58 21.2 class-1
#Alaska 10.0 263 48 44.5 class-1
#Arizona 8.1 294 80 31.0 class-1
#Arkansas 8.8 190 50 19.5 class-2
#California 9.0 276 91 40.6 class-1
#Colorado 7.9 204 78 38.7 class-2