Привет, мои друзья, наблюдение следующее.Я не знаю, в чем проблема.
Когда я создаю кластеры с помощью функции hclust, метки объекта, который он создает, теряются, если способ, которым я подставляю фрейм данных, является «неправильным».
Это кадр данных.
set.seed(1234)
x <- rnorm(12,mean=rep(1:3,each=4),sd=0.2)
y <- rnorm(12,mean=rep(c(1,2,1),each=4),sd=0.2)
z <- as.factor(sample(c("A","B"),12,replace=T))
df <- data.frame(x=x,y=y,z=z)
plot(df$x,df$y,col=z,pch=19,cex=2)
Этот фрагмент кода возвращает NULL для меток.
df1 <- df[c("x","y")]
d <- dist(df1)
cluster <- hclust(d)
cluster$labels #NULL
Этот фрагмент кода также возвращает NULL.
df2 <- df[,1:2]
d <- dist(df2)
cluster <- hclust(d)
cluster$labels #NULL
Этот кусок кода не возвращает NULL.
df3 <- df[1:12,1:2]
d <- dist(df3)
cluster <- hclust(d)
cluster$labels #Character Vector
Это представляет проблему для меня, потому что у меня есть несколько кодов, которые используют эту информацию.
КакВы можете видеть, что кадры данных идентичны.
identical(df1, df2) #True
identical(df1, df3) #True
identical(df2, df3) #True