Ich habe einen riesigen Datensatz von 203614 Zeilen und 3 Spalten mit Namen "Preis", "Timestamp", Energie. während Zeitstempel Wiederholungs- für jede TransaktionWie man eine Teilmenge eines Datenrahmens in for Schleife in r nimmt
Preis ist in numerischer
Zeitstempel hat, ist in posixct
Energie in numerischer
dput(head(dataset))
structure(list(Price = c(18, 20, 23, 15, 15, 15), Timestamp.Transaction = structure(c(1388500200, 1388500200, 1388502000, 1388502000, 1388502000, 1388502000), class = c("POSIXct", "POSIXt"), tzone = ""), Energy = c(414, 230, 3, 3, 3, 3)), .Names = c("Price", "Timestamp.Transaction", "Energy"), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))
ich diese folgenden Schritte zu tun haben, durch Anwenden von Schleifen
1) Ich habe den Datensatz mit "Zeitstempeln" Differenz von 1,33 Tagen aus bestimmten Zeitstempeln
2) caluclate die min, max, avg des Preises in Subset und Zuweisen zu neuem Datenrahmen
3) die Teilmenge ich habe oben genannten Schritte für jede 15min Dauer
HINWEIS iterieren: m1 ist mein Dataset
t1 ist der Zeitstempel Vektor wie es Werte i aus der es nur eindeutige Werte
t1 <- unique(timestamp)
nahm wiederholt
Ich habe dies versucht, aber es wird zu viel Zeit kompilieren und die reults sind falsch
for(i in 125:length(t1)){ for(j in 1:203614){ s1[j,] <- subset(m1,(m1$Timestamp.Transaction <=t1[i] & m1$Timestamp.Transaction >= t1[i]-115200) }}
Hallo ich habe ein Bild des Datensatzes hinzugefügt. bitte überprüfen Sie es – kris
Struktur (Liste (Preis = c (18, 20, 23, 15, 15, 15), Timestamp.Transaction = Struktur (c (1388500200, 1388500200, 1388502000, 1388502000, 1388502000, 1388502000), Klasse = c ("POSIXct", "POSIXt"), Tzone = ""), Energie = c (414, 230, 3, 3, 3, 3)), .Names = c ("Preis", "Timestamp.Transaction" "Energie"), row.names = c (NA, -6L), Klasse = c ("tbl_df", "tbl", "data.frame")) – kris
Haben Sie meine Lösung versucht? Wenn Sie die Größe Ihrer Daten berücksichtigen, können Sie mit einem vektorisierten Ansatz möglicherweise etwas Zeit sparen. – LAP