У меня есть следующее распределение тем по времени:
Я пытаюсь создать кластеры времени в соответствии с распределением тем.,например, интуитивно можно сказать, что есть кластер в 2012–2013 годах, когда начальная тема topic_005, а другой - в период 2017–2018 годов, когда распределение завершено.
Мои данные уже представлены как распределение (%) с течением времени, как это(3-й фильтр предназначен для упрощения вывода для этого вопроса и поэтому использует годы в качестве единицы времени):
library(tidyverse) # for the pipe operator and other functions used in this code
topic_scores_tidy %>%
filter( !is.na(fecha) ) %>%
filter( score > 0.3 ) %>%
filter( topic %in% c("topic_001","topic_004","topic_009") ) %>%
group_by( date = floor_date(fecha, unit = "year"),topic) %>%
summarize(n=n()) %>%
mutate( percFreq = n / sum(n)) %>%
spread( topic, percFreq )
# A tibble: 10 x 5
# Groups: date [6]
date n topic_001 topic_004 topic_009
<date> <int> <dbl> <dbl> <dbl>
1 2011-01-01 1 1 NA NA
2 2014-01-01 2 1 NA NA
3 2015-01-01 2 0.5 0.5 NA
4 2016-01-01 4 NA 0.308 0.308
5 2016-01-01 5 0.385 NA NA
6 2017-01-01 11 NA NA 0.297
7 2017-01-01 13 0.351 0.351 NA
8 2018-01-01 6 0.182 NA NA
9 2018-01-01 8 NA 0.242 NA
10 2018-01-01 19 NA NA 0.576
Не уверен, как будет выглядеть вывод, но я предполагаю, что это должно быть что-то вроде диапазонов дат.