2016-12-01 14 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

2つ以上の行がある場合に、どのような出力が期待されますか? –

+0

違いを計算したいデータセットには2行しかありませんか?それとももっと行がありますか? –

答えて

1

「DATE」はDateクラスなので、rbind文字列「DIFFERENCE」を続行する前に、characterに変更する必要があります。それ以外の場合は、 'df'の数値列をサブセット化し、lapplyでループし、差分を取得し、 'DATE'および 'TYPE'と連結し、rbind元のデータセットを連結します。

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

すごくうれしかった!ありがとう! –

関連する問題