Ik begrijp niet wat de functie diff()
in R doet. Zie dit voorbeeld:
temp = c(10,1,1,1,1,1,1,2,1,1,1,1,1,1,1,3,10)
diff(temp)
De bovenstaande code produceert de volgende uitvoer:
[1] -9 0 0 0 0 0 1 -1 0 0 0 0 0 0 2 7
Wat is de definitie van deze functie?
Antwoord 1, autoriteit 100%
De functie berekent de verschillen tussen alle opeenvolgende waarden van een vector. Voor uw voorbeeldvector zijn de verschillen:
1 - 10 = -9
1 - 1 = 0
1 - 1 = 0
.
.
.
3 - 1 = 2
10 - 3 = 7
Met het argument differences
kun je de volgorde van de verschillen specificeren.
Bijvoorbeeld het commando
diff(temp, differences = 2)
[1] 9 0 0 0 0 1 -2 1 0 0 0 0 0 2 5
produceert hetzelfde resultaat als
diff(diff(temp))
[1] 9 0 0 0 0 1 -2 1 0 0 0 0 0 2 5
Daarom geeft het de verschillen van verschillen terug.
Met het argument lag
kunt u de vertraging specificeren.
Bijvoorbeeld, als lag = 2
, worden de verschillen tussen de derde en de eerste waarde, tussen de vierde en de tweede waarde, tussen de vijfde en de derde waarde enz. berekend.
p>
diff(temp, lag = 2)
[1] -9 0 0 0 0 1 0 -1 0 0 0 0 0 2 9
Antwoord 2, autoriteit 25%
Het berekent het verschil tussen paren opeenvolgende elementen.
Laten we zeggen dat temp
waarnemingen zijn van een variabele, bijvoorbeeld temperatuurmetingen op het hele uur. Dan zal diff(temp)
je vertellen hoeveel de temperatuur is veranderd gedurende elk uur.
Het tegenovergestelde van diff()
is cumsum()
(cumulatieve som):
> temp
[1] 10 1 1 1 1 1 1 2 1 1 1 1 1 1 1 3 10
> cumsum(c(10, diff(temp)))
[1] 10 1 1 1 1 1 1 2 1 1 1 1 1 1 1 3 10