3 Stimmen

Unterschiedliche Teillisten eines Datenrahmens

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")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X