2016-12-01 78 views
0

我想要確定每行的差異,並在最後對整個差異進行rbinded。下面是一個示例數據集:Rbind行的差異

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 

如何計算的每一列的差異產生這種總:

 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 

我可以很容易地做到這一點被列,但有問題的行做。

任何幫助將非常感謝!

+0

在超過兩行的情況下,您對輸出的期望是什麼? –

+0

您的數據集中是否只有2行需要計算差異?或者還有更多的行? –

回答

1

由於'DATE'爲Date類,所以在繼續使用字符串「DIFFERENCE」處理rbind之前,可能需要將其更改爲character。除此之外,將'df'的數字列子集合,使用lapply進行循環,獲得與「DATE」和「TYPE」以及原始數據集連接的差異。

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

非常好,謝謝! –