PAM函数使用相异性矩阵中的R:NA值时出错

  • 本文关键字:NA 出错 函数 PAM r cluster-analysis
  • 更新时间 :
  • 英文 :


我使用daisy创建了一个相异矩阵,然后尝试使用PAM函数进行聚类,但出现了错误。聚类方法用于消费者人口统计的市场细分研究。

根据另一篇帖子,当两个样本存在NA值时,就会出现错误。没有办法计算差异。链接如下:R集群生成错误消息。似乎我的data.frame是如此稀疏,以至于相异矩阵具有NA值。

问题:使daisy矩阵不具有NA值的最佳方法是什么?我应该填写序号栏吗?

在一个名为Store4df的data.frame中,我对34个ordinalNA变量进行了13163次观测。data.frame中没有一行具有所有NA值。这是要检查的代码:

> which(rowSums(is.na(Store4df))==ncol(Store4df))
#named integer(0)

以下是5个观测值中前5个变量的样本:

> head(Store4df, n=5)
    Age Gender HouseholdIncome MaritalStatus PresenceofChildren HomeOwnerStatus
2 55-64 Female         50k-75k        Single                 No             Own
3  <NA> Female            <NA>          <NA>               <NA>            <NA>
4  <NA>   Male            <NA>          <NA>               <NA>            <NA>
7  <NA>   Male            <NA>          <NA>               <NA>            <NA>
9   65+   Male        75k-100k        Single                 No             Own

我使用了CRAN的cluster包中的PAM聚类方法,其中包含三个聚类。

> #Import cluster package
> library(cluster)
> #Create dissimilarity matrix
> #Gower coefficient for finding distance between mixed variable
> daisy4 <- daisy(Store4df, metric = "gower", type = list(ordratio = c(1:34))) 
> #Pam algorithm with 3 clusters 
> k4answers <- pam(daisy4, 3, diss = TRUE)
> k4answers <- pam(daisy4, 3, diss = TRUE)
#Error in pam(daisy4, 3, diss = TRUE) : 
  #NA values in the dissimilarity matrix not allowed

我找到了问题的解决方案。对于序数,我决定取中值并输入到NA。我不能创建一个缺少值的欧氏距离矩阵。无法计算值和不存在的值之间的距离。

最新更新