R ClustOfVar:数据中有3个相同列时出错

时间:2016-08-08 02:04:20

标签: r cluster-analysis

当我们使用包ClustOfVar在R中进行变量聚类时,我们通常需要通过指定参数h(高度)或k(所需的数量)来将聚类树切割成组。簇状物)。

当我们使用k时(只要k小于列数),它总能正常工作。

但是当我们使用h来切割时,如果有3个或3个以上相同的列,则可能会出现错误。 (如果您没有收到错误消息,请多次运行以下代码。)

A = sample(LETTERS[1:4],40,replace = TRUE)
B = A
C = A

fit = hclustvar(X.quali = data.frame(A,B,C))
plot(fit)
cutree(fit,h=0.5)

#Error in cutree(fit, h = 0.5) : 
#  the 'height' component of 'tree' is not sorted (increasingly)

在以下示例中,我们只有2个相同列的组。它永远不会失败。

A = sample(LETTERS[1:4],40,replace = TRUE)
B = A
C = sample(LETTERS[1:2],40,replace = TRUE)
D = C
fit = hclustvar(X.quali = data.frame(A,B,C,D))
plot(fit)
cutree(fit,h=0.5)

如果我们在第二个例子中再添加一个相同的列:

A = sample(LETTERS[1:4],40,replace = TRUE)
B = A
C = sample(LETTERS[1:2],40,replace = TRUE)
D = C
E = C
fit = hclustvar(X.quali = data.frame(A,B,C,D,E))
plot(fit)
cutree(fit,h=0.5)
#Error in cutree(fit, h = 0.5) : 
#  the 'height' component of 'tree' is not sorted (increasingly)

它再次失败。

我认为通过h剪切聚类树更加实用和方便,因为它更加一致和有意义。

是否有任何可行的解决方法?或者R中是否有更稳定的包可以进行变量聚类?感谢。

0 个答案:

没有答案