聚类函数中的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))