2017-02-07 16 views
2

R. でDTWパッケージを使用し、最終的に階層的クラスタリングを終了しました。 しかし、私は時系列のクラスタを以下のように別々にプロットしたいと思う。rにクラスタメンバーをプロット

enter image description here

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

hc <- hclust(dist(sc), method="average") 
plot(hc, main="") 

私はそれをどのように行うことができます? http://blogattach.naver.com/e772fb415a6c6ddafd1370417f96e494346a9725/20170207_141_blogfile/khm2963_1486442387926_THgZRt_csv/confirm.csv?type=attachment

+0

はどのように多くのクラスタは、データにしたいですか?また、あなたのデータをここに入れてください。リンクは私が理解していない中国語です。 – discipulus

+0

ああ私はこの投稿にどのようにデータを置くことができるのか分からない。 私はどのように人々がデータ を得ることができるか、またはあなたのメールアドレスを教えてくれますか? –

+0

時系列は列に沿っていますが、行をクラスタリングしています。列をクラスター化する必要はありませんか? –

答えて

3

あなたはこれを試すことができます。

sc <- read.table("confirm.csv", header=T, sep=",") 
rownames(sc) <- sc$STDR_YM_CD 
sc$STDR_YM_CD <- NULL 
col_n <- colnames(sc) 

sc <- t(sc) # make sure your rows represent the time series data 
id <- rownames(sc) 
head(sc) 

hc <- hclust(dist(sc), method="average") 
plot(hc, main="") 

n <- 20 
sc <- cbind.data.frame(id=id, sc, cluster=cutree(hc, k = n)) 

library(dplyr) 
library(tidyr) 
library(ggplot2) 
sc %>% gather(variable, value, -id, -cluster) %>% 
ggplot(aes(variable, value, group=id, color=id)) + geom_line() + 
    facet_wrap(~cluster, scales = 'free') + guides(color=FALSE) + 
    theme(axis.text.x = element_text(angle=90, vjust = 0.5)) 

enter image description here

+0

本当にありがとう〜私はグラフを得た!あなたは最高の女性ですか?または男? ~~ 私は別の質問があります。 2番目の行のコード 'rownames(sc)< - id'を' rownames(sc)< - sc $ STDR_YM'_CDに変更しました。 いいですか?私は最初のコードを使用するとき、私はerorrメッセージを持っています –

+1

ありがとう~~私は多くの人々がこの偉大な知識を共有するためにこの答えを見ることを願っています –

+0

どのようにデータを見せることができますか? – sbradbio

0

での私のデータは、あなたがデータポイントをクラスタ化し、それらをプロットするためにクラスタ上(ggplot2パッケージから)facet_wrapを使用するcutreeを使用することができます。私はあなたのデータを得ることができなかったので、私は公に利用可能なデータの例を持っています。

narrest <- USArrests 

# Clustering 
hc <- hclust(dist(narrest), "ave") 
plot(hc) 

# Cut the tree to required number of clusters, here 3 
narrest$clusters <- cutree(hc, k = 3) 

# use facet_wrap from ggplot to one variable Murder 
d <- ggplot(narrest, aes(y=Murder, x=1:nrow(narrest))) + geom_line() 
d + facet_wrap(~ clusters) 
print(d) 
+0

こんにちは〜本当にありがとう〜しかし、私はファイルのための私のリンクを変更します。 デモを見せてもらえますか? 私のデータが間違っていると思います。HAHA yの値がわからない。 –