使用R:不相容矩阵中的NA值的PAM函数出错

时间:2014-09-09 19:45:50

标签: r cluster-analysis

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

根据另一篇文章,当两个样本有NA个值时会发生错误。没有办法计算相异性。这是链接:R Clustering Produces Error Message。似乎我的data.frame非常稀疏,相异矩阵的值为NA

问题:使daisy矩阵没有NA值的最佳方法是什么?我应该填写序数列吗?

我对名为Store4df的ordinal中的34个NAdata.frame个变量进行了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的PAM包中的cluster聚类方法和三个聚类。

> #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

1 个答案:

答案 0 :(得分:0)

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