1
A habe einen sortierten Datenrahmen und ich möchte den Anstieg von x2
für jede ID berechnen. Die Eingabe bereits in einer bestimmten Art und Weise sortiert ist:Berechne den Anstieg zwischen den Zeilen für jede ID
ID x2 x3 x4
1 10 11 2
2 100 12 4
1 20 13 10
7 24 3 1
1 30 14 0
3 6 15 1
2 90 15 1
Ich mag würde bekommen:
ID x2 increase x3 x4
1 10 11 2
2 100 12 4
1 20 +100% 13 10
7 24 3 1
1 30 +50% 14 0
3 6 15 1
2 90 -10% 15 1
Sie Erklärungen für diesen Befehl geben könnte tun könnte 'df $ Erhöhe <- ave (df $ x2, df $ ID, FUN = Funktion (x) c (NA, diff (x)/Kopf (x, -1)) * 100) 'in deiner Antwort? – noblabla
'ave' teilt Ihre Daten mit' df $ ID' und gibt einen Vektor der Länge 'nrow (df)' zurück. Die erste Teilung, "x" ist "c (10L, 20L, 30L)", "diff (x)" ist "c (10L, 10L)" und 'head (x, 1)' ist 'c (10L, 20L) '. Sie zu teilen, gibt Ihren Zuwachs. Ich füge 'NA' hinzu, weil der erste Wert keine Erhöhung hat. – lukeA
Super! Vielen Dank. – noblabla