r - R中的聚类分析期间"NAs introduced by coercion"

标签 r cluster-analysis

伙计们,我是这种语言的新手,我正在一个数据帧上进行聚类分析,但是当我计算距离时,我会收到此警告“强制引入的NA”。这是什么意思?

d <- dist(as.matrix(mydata1))

  Warning message:
In dist(as.matrix(mydata1)) : NAs introduced by coercion

我的数据样本是
Metafamily     Total         July cpc      July cse_pla    July offline   July organic  
xerox 8560     275.829417    0.20943223    0.032628862     0.169210813    0.1130048 
office-supplie  246.9125664  0.057833047   0.020209909     0.535358617    0.136165617

除了Metafamily列之外,该类中的所有列都是数字。

大家请帮我解决这个问题。

最佳答案

这是造成问题的第一列:

> a <- c("1", "2",letters[1:5], "3")
> as.numeric(a)
[1]  1  2 NA NA NA NA NA  3
Warning message:
NAs introduced by coercion 

dist内部,必须强制数字化,从而生成上面的NA。

我建议不使用第一列就应用dist,或者如果可能的话,最好将其移至rownames,因为结果会有所不同:
> dist(df)
          1         2         3         4
2 1.8842186                              
3 1.9262360 1.2856110                    
4 3.2137871 1.7322788 2.9838920          
5 1.3299455 0.9872963 1.9158079 1.8889050
Warning message:
In dist(df) : NAs introduced by coercion
> dist(df[-1])
         1        2        3        4
2 1.538458                           
3 1.572765 1.049697                  
4 2.624046 1.414400 2.436338         
5 1.085896 0.806124 1.564251 1.542284

顺便说一句:调用as.matrix时不需要dist。无论如何,它都会在内部完成。

编辑:使用行名
rownames(df) <- df$id

> df
  id       var1       var2
A  A -0.6264538 -0.8204684
B  B  0.1836433  0.4874291
C  C -0.8356286  0.7383247
D  D  1.5952808  0.5757814
E  E  0.3295078 -0.3053884

> dist(df[-1]) # you colud also remove the 1st col at all, using df$id <- NULL.
         A        B        C        D
B 1.538458                           
C 1.572765 1.049697                  
D 2.624046 1.414400 2.436338         
E 1.085896 0.806124 1.564251 1.542284

关于r - R中的聚类分析期间"NAs introduced by coercion",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245291/

相关文章:

r - 如何填补(date-)在data.frame中的空白?

python - 如何使用层次聚类将聚类分配给新的观察结果(测试数据)?

r - 如何在 R 中绘制这个集群?

r - 用图进行层次聚类标记

r - knitr : How to improve typography 中的科学记数法

r - 给定列的最小值,在另一列中找到最小值(dplyr)

php - 服务器端集群谷歌地图标记

c++ - 通过凹多边形计算位置聚类中心约束的最快方法是什么

r - 对每行包含多个因子的数据帧进行一次热编码

r - Graalvm - 与 RStudio 集成