2016-12-01 8 views
0

Ich möchte den Unterschied jeder Zeile bestimmen und diese Gesamtdifferenz rbinded am Ende haben. Im Folgenden finden Sie einen Beispieldatensatz:Rbind Unterschied der Zeilen

DATE <- as.Date(c('2016-11-28','2016-11-29')) 
TYPE <- c('A', 'B') 
Revenue <- c(2000, 1000) 
Sales <- c(1000, 4000) 
Price <- c(5.123, 10.234) 
Material <- c(10000, 7342) 
df<-data.frame(DATE, TYPE, Revenue, Sales, Price, Material) 

df 

     DATE TYPE Revenue Sales Price Material 
1 2016-11-28 A 2000 1000 5.123 10000 
2 2016-11-29 B 1000 4000 10.234  7342 

Wie kann ich den Unterschied von jedem der Spalten berechnen diese Summe zu erzeugen:

 DATE TYPE Revenue Sales Price Material 
1 2016-11-28 A 2000 1000 5.123 10000 
2 2016-11-29 B 1000 4000 10.234  7342 
3 DIFFERENCE  -1000 3000 5.111 -2658 

ich leicht durch Spalten tun können, aber Mühe es für Zeile zu tun habe .

Jede Hilfe wäre super danke!

+0

Was erwarten Sie in der Ausgabe, wenn es mehr als zwei Zeilen gibt? –

+0

Haben Sie nur 2 Zeilen in Ihrem Datensatz, für die Sie den Unterschied berechnen möchten? Oder gibt es mehr Reihen? –

Antwort

1

Da 'DATE' Date Klasse ist, müssen wir es möglicherweise in character ändern, bevor Sie mit rbind ing mit Zeichenfolge "DIFFERENCE" fortfahren. Ansonsten unterteilen Sie die numerischen Spalten von 'df', führen Sie eine Schleife mit lapply, erhalten Sie die Differenz, verketten Sie mit dem 'DATE' und 'TYPE', und rbind mit dem ursprünglichen Dataset.

df$DATE <- as.character(df$DATE) 
rbind(df, c(DATE = "DIFFERENCE", TYPE= NA, lapply(df[-(1:2)], diff))) 
#  DATE TYPE Revenue Sales Price Material 
#1 2016-11-28 A 2000 1000 5.123 10000 
#2 2016-11-29 B 1000 4000 10.234  7342 
#3 DIFFERENCE <NA> -1000 3000 5.111 -2658 
+1

Das hat super funktioniert, danke! –

Verwandte Themen