2017-02-07 2 views
1

Ich bin neu in R und stecken in den Unterschied zwischen zwei nicht aufeinander folgenden Zeilen. Meine Daten Rahmen wie folgt aussehen:Erhalten Sie den Unterschied zwischen zwei nicht aufeinander folgenden Zeilen

 Column 1 | Column 2 
    Row1 1  | 5 
    Row2 3  | 6 
    Row3 8  | 10 
    Row4 6  | 1 
    Row5 28  | 5 
    Row6 7  | 4 

Ich brauche den Unterschied zwischen Row1 und Row4, Row2 und Row5, Row3 und Row6 und so weiter zu finden. Ich habe dies mit der For-Schleife gemacht, indem ich die Intervalle angegeben habe, aber es nimmt viel Zeit in Anspruch, da es eine große Anzahl von Zeilen gibt.

Gibt es einen anderen Weg, es zu tun?

+2

Verwenden Sie 'diff' -Funktion mit' lag' Argument. – user2100721

+0

Was passiert nach Zeile 6? Wird Zeile 7 mit Zeile 10 verglichen? – Jaap

+0

Was ist mit den letzten Zeilen zu tun (die, die in Ihren Daten keine entsprechende Zeile +3 enthalten)? – LAP

Antwort

0

Dies sollte den Trick tun. Die letzten Zeilen werden jedoch aus der Ausgabe weggelassen, daher ist die erhaltene Matrix kleiner als Ihre Eingabe.

diff(as.matrix(your_data_frame), lag = 3) 
+0

Danke. Es hat den Trick gemacht und viel Zeit gespart. – Ashish

Verwandte Themen