Ich habe einen Datenrahmen, der mehrere ineinander verschachtelte Werte enthält, die in einer Zeitleiste aufgetreten sind. Ich möchte einen neuen Datenrahmen erstellen, der Zeilennummern (im Grunde Zeilen-IDs), einen Dateideskriptor, eine Operation und einen "Größen"-Wert enthält.
Beispiel:
line fd syscall size
1 1 1 lseek 1289020416
2 2 1 lseek 1289021440
3 3 2 lseek 1289024512
4 4 1 lseek 1289025536
5 5 2 lseek 1289026560
6 6 1 lseek 1289027584
Ich möchte eine Differenz der Größenwerte berechnen per fd und zeigen den Ausgangspunkt des Diff. Die diff
Funktion selbst wirft eine Menge Daten weg. Gibt es etwas Ähnliches, das mir hilft, Kontext zu haben (z. B. wo der Anfang jeder Zeile war)?
Ich möchte Ergebnisse, die wie die folgenden aussehen, wo ich weiß, wie weit jeder fd hat seit der vorherigen Zeile bewegt, und was die vorherige Zeile war.
line fd diff
1 1 1 1024
2 2 1 4096
3 3 2 2048
4 4 1 2048
Gibt es etwas, das ich tun kann, das einfacher ist, als alles auseinander zu nehmen und zu schleifen? Ich muss glauben, dass jemand eine etwas bessere Lösung hat. diff
da draußen.
Beispiel Eingabe:
structure(list(line = 1:6, fd = c(1, 1, 2, 1, 2, 1), syscall = structure(c(1L,
1L, 1L, 1L, 1L, 1L), class = "factor", .Label = "lseek"), size = c(1289020416,
1289021440, 1289024512, 1289025536, 1289026560, 1289027584)), .Names = c("line",
"fd", "syscall", "size"), row.names = c(NA, -6L), class = "data.frame")