J'essaie de transformer une colonne particulière d'un jeu de données avec des échantillons quotidiens de données pour différents périphériques dans une colonne de séries temporelles regroupées par deux clés (heure et facteur1)Définir début et fin dans la fonction ts dans data.table groupby
Les données que j'ai est quelque chose comme ça
date hour factor1 volume wkday
1: 2015-10-01 AM 11011 530 Thursday
2: 2015-10-01 AM 11012 1535 Thursday
3: 2015-10-01 AM 11021 191 Thursday
4: 2015-10-01 AM 11131 1108 Thursday
5: 2015-10-01 AM 11132 1518 Thursday
6: 2015-10-01 AM 11141 508 Thursday
la date se déroulera du 01/10/2015 à 01/08/2017, heure a deux niveaux (AM et PM), factor1 a plusieurs niveaux et est Joursem pas nécessaire jusqu'à présent. La colonne que je veux transformer en données de timeseries est le volume.
J'ai essayé ce faire:
table_11011 = table[factor1 == '11011']
table_11011_am = table_11011[hour == 'AM']
table_11011_am[, vol_ts := ts(table_11011_am[,volume],
start = decimal_date(table_11011_am[, date][1]),
frequency = 365)]
Ainsi j'obtenir la sortie désirée, mais lorsque je tente de résumer cela pour tous les différents niveaux de FACTOR1 et des heures, je ne sais pas comment saisir le début correct et à la fin rendez-vous amoureux. Jusqu'à présent, j'ai réussi à le faire, mais il semble donner un mauvais rendement.
table[, vol_ts := ts(volume,
start = decimal_date(table[, date][1]), frequency = 365), by = c('factor1', 'hour')]
Toute aide serait appréciée!
Ce n'est pas exactement la réponse que je recherchais mais c'était très utile. Ce que je cherche, c'est de définir dans une même colonne les ts d'une nouvelle colonne, mais chaque ts est différent, car chaque facteur1 et heure peut avoir une longueur différente ... Je ne sais pas si Je m'explique. En tout cas, merci beaucoup pour votre aide. –