I einen R Datenrahmen haben df mit folgendem Inhalt:Verwenden von diff() in R mit NA und negativen Zahlen
Serial N year current
B 10 14
B 10 16
B 11 10
B 11 NA
B 11 15
C 12 11
C 12 9
C 12 13
C 12 17
. . .
Ich mag die Differenz zwischen dem jedem aufeinanderfolgenden Paar von Strom von den gleichen Serien finden Dieser N. ist Code, den ich wrote.But ich einige seltsame Ergebnisse
library(data.table)
setDT(df)[,mydiff:=diff(df$current),by=Serial N]
print(length(df$current))
ich für diese Spalte erhalten die folgenden als outuput bin immer ist ziemlich seltsam, ich diese:
2 6 NA NA NA 2 6 NA NA NA
Was würde ich eigentlich haben möchte ist:
Serial N year current mydiff
B 10 14
B 10 16 16-14=2
B 11 10 10-16=-4
B 11 NA NA
B 11 15 15-10=5
C 12 11
C 12 9 9-11=-2
C 12 -13 -13-9=-22
C 12 17 17-(-13)=30
. . .
das Richtige ist diff, das zu tun? wenn nicht, wie kann man das angehen (vor allem ohne Schleifen)?
Es funktioniert perfekt. Vielen Dank – user3841581