现在我正在使用 dtwclust 包(感谢作者 Alexis Sarda-Espinosa 和 Alexis Sarda~)

我被困在一个简单的问题上。这是我的代码。

sc <- read.table("D:/handling data/confirm.csv", header=T, sep="," )
rownames(sc) <- sc$STDR_YM_CD
sc$STDR_YM_CD <- NULL
sc <- t(sc)
hc_sbd <- dtwclust(sc, type = 'h', k=3L, method = 'average', preproc = zscore,
               distance = 'dtw', control = list(trace=TRUE) )

plot(hc_sbd@cluster)
plot(hc_sbd, type='sc')
plot(hc_sbd, type='series', clus=2)
plot(hc_sbd, type='centroids', clus=2)

head(hc_sbd)
write.xlsx(hc_sbd, "D:/handling data/tab1clustn.xlsx")

我得到了这张照片。
我想用集群标签导出我的数据。像第二张图。

r - 如何得到dtwclust的结果-LMLPHP
r - 如何得到dtwclust的结果-LMLPHP

这是我的数据链接
http://blogattach.naver.com/e772fb415a6c6ddafd137d427d9ee7953f6e9146/20170207_141_blogfile/khm2963_1486442387926_THgZRt_csv/confirm.csv?type=attachment

最佳答案

我假设 STDR_YM_CD 是您希望与 DTW 集群的唯一标识符。

sc <- read.table("D:/handling data/confirm.csv", header=T, sep="," )
df.labels <- sc$STDR_YM_CD    #rownames(sc) <- sc$STDR_YM_CD
sc$STDR_YM_CD <- NULL
sc <- t(sc)

hc_sbd <- dtwclust(sc, type = 'h', k=3L, method = 'average', preproc = zscore,
           distance = 'dtw', control = list(trace=TRUE) )

hc.clust <- data.frame(STDR_YM_CD = df.labels, dtwclust = hc_sbd@cluster)

sc <- merge(sc,hc.clust, by.x = "STDR_YM_CD", by.y = "STDR_YM_CD")

我只是提取标签,即您尝试聚类的变量,然后从 dtwclust 结果创建一个新的数据框,列名是 dtwclust。我认为根据我们独特的标签将它们合并回来。还有其他方法可以做到这一点,但这是一种选择。我希望它有帮助!

关于r - 如何得到dtwclust的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42197984/

10-10 09:15