聚类函数中的NA(kmeans、pam、clara)。如何将群集与原始数据关联?
我需要对一些数据进行聚类,我尝试了聚类函数中的NA(kmeans、pam、clara)。如何将群集与原始数据关联?,r,cluster-analysis,k-means,na,missing-data,R,Cluster Analysis,K Means,Na,Missing Data,我需要对一些数据进行聚类,我尝试了kmeans,pam,以及clara和R 问题是我的数据位于数据帧的一列中,并且包含NAs 我使用na.omit()获取集群。但是,我怎样才能将它们与原始数据关联起来呢?这些函数返回一个不带NAs的整数向量,并且不保留关于原始位置的任何信息 是否有一种聪明的方法将聚类与数据框中的原始观测值相关联?(还是在存在NAs时智能执行群集的方法?) 谢谢这段代码适合我,首先是一个包含整行NAs的矩阵: DF=matrix(rnorm(100), ncol=10) row.
kmeans
,pam
,以及clara
和R
问题是我的数据位于数据帧的一列中,并且包含NAs
我使用na.omit()
获取集群。但是,我怎样才能将它们与原始数据关联起来呢?这些函数返回一个不带NAs的整数向量,并且不保留关于原始位置的任何信息
是否有一种聪明的方法将聚类与数据框中的原始观测值相关联?(还是在存在NAs时智能执行群集的方法?)
谢谢这段代码适合我,首先是一个包含整行NAs的矩阵:
DF=matrix(rnorm(100), ncol=10)
row.names(DF) <- paste("r", 1:10, sep="")
DF[3,]<-NA
res <- kmeans(na.omit(DF), 3)$cluster
res
DF=cbind(DF, 'clus'=NA)
DF[names(res),][,11] <- res
print(DF[,11])
DF=矩阵(rnorm(100),ncol=10)
row.names(DF)kmeans的输出与作为参数x
传递的对象元素相对应。在本例中,您省略了NA
元素,因此$cluster
指示NA的每个元素所属的集群
plot(d$x, bg=d$cluster, pch=21)
下面是一个简单的例子:
d <- data.frame(x=runif(100), cluster=NA)
d$x[sample(100, 10)] <- NA
clus <- kmeans(na.omit(d$x), 5)
d$cluster[which(!is.na(d$x))] <- clus$cluster
您给行命名了吗?我认为kmeans和pam(至少)保留了行名,不是吗?我这样做:kmeans(na.省略(x),k)集群向量(例如clus$cluster
)对应于x
的非na
元素。因此clus$cluster
的元素对应的x
的索引是,即(!is.na(x))
。