制作谷歌趋势数据的距离向量

时间:2016-02-02 19:02:02

标签: r google-trends

我在gtrendsR的帮助下导入了一些谷歌趋势数据并成功绘制了它。 现在我想用h.clust对数据进行聚类,但我的问题是我没有成功转换为距离向量的数据格式。

数据如下:

datestart, date-end, trend1, trend2, trend3 
1   2004-01-04 2004-01-10     57    18     39 
2   2004-01-11 2004-01-17     55    17     39 
3   2004-01-18 2004-01-24     56    20     43 
4   2004-01-25 2004-01-31     55    19     41 
5   2004-02-01 2004-02-07     57    20     39 
6   2004-02-08 2004-02-14     57    18     40 

为了绘制数据,我使用了data.frame。

任何人都可以帮助我了解如何转换数据的想法,以便我可以聚集"形状"趋势分为不同的集群?

1 个答案:

答案 0 :(得分:1)

您可以将Gmail趋势曲线的形状聚类为:

set.seed(1)
library(gtrendsR)
library(dtw)

# Switch https://www.google.com/settings/security/lesssecureapps to on if needed:
gconnect("your_google_email", "your_google_psw")
cotton_trend <- gtrends(c("cotton", "satin", "velvet"), res="week")
d <- dist(t(cotton_trend$trend[, -(1:2)]), method="DTW")
hc <- hclust(d)

# plot the results
par(mfrow=c(1,2))
plot(cotton~end, cotton_trend$trend, type="l", ylim=range(cotton_trend$trend[, -(1:2)]), col=3, ylim="")
for (x in 4:ncol(cotton_trend$trend)) lines(x=cotton_trend$trend$end, y=cotton_trend$trend[, x], col=x)
legend("topleft", names(cotton_trend$trend)[-(1:2)], lty=1, col=3:ncol(cotton_trend$trend))
plot(hc)
rect.hclust(hc, k=2)

# extract clusters: 
cutree(hc, k=2)
# cotton  satin velvet 
#      1      2      1 

enter image description here