2017-04-08 2 views
0

J'ai inclus un instantané du cadre de données brutes ci-dessous, j'essaie d'agréger ces comptes de connexion en fonction des intervalles de temps de 10 minutes et de visualiser le résultat du temps La série de connexion de l'utilisateur compte le mieux. Je ne sais pas comment faire mieux? Merci!Agréger ces comptes de connexion d'utilisateur en fonction des intervalles de temps de 10 minutes

print(head(logins.data.frame)) 

le ci-dessous est l'instantané de la trame de données brutes

#DateTime 
#1 2012-03-01T00:05:55+00:00 
#2 2012-03-01T00:06:23+00:00 
#3 2012-03-01T00:06:52+00:00 
#4 2012-03-01T00:11:23+00:00 
#5 2012-03-01T00:12:47+00:00 
#6 2012-03-01T00:12:54+00:00 
+1

Les dossiers ressemblent XTS. Vous devriez écrire 'dput (head (logins.data.frame))' en tant que [edit] pour en faire un [MCVE] –

Répondre

1

Disons que vos données ressemble à ceci:

dates = as.POSIXct(c("2012-03-01 00:05:55+00:00", "2012-03-01 00:06:23+00:00","2012-03-01 00:06:52+00:00", "2012-03-01 00:11:23+00:00", "2012-03-01 00:12:47+00:00", "2012-03-01 00:12:54+00:00")) 

Convertir le temps en minutes (je suppose que toutes les données sont le même jour, mais il ne serait pas difficile de généraliser cette hypothèse):

minutes = as.numeric(format(dates, "%M")) + 60 * as.numeric(format(dates, "%H")) 

Seau les minutes de la manière habituelle. Voici comment je le ferais:

minute.max = ceiling(max(minutes)) 
bins = cut(minutes, breaks = 10*0:minute.max, labels = as.character(10*0:(minute.max-1))) 

Mettez tous ensemble:

df = data.frame(dates = dates, minutes = minutes, bins = bins) 
+0

Erreur dans eval (expr, envir, enclos): l'objet (list) ne peut pas être forcé à taper ' double ' Traceback: – kwashington122

+0

c'est l'erreur que j'ai eue quand j'ai essayé de convertir le temps en minutes – kwashington122

+0

Quel est le format de vos dates? Pouvez-vous inclure la date dans votre question? – lebelinoz