我想要确定每一行的差异,并使总差在最后重新组合。下面是一个示例数据集:
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我可以很容易地按列来做,但是很难按行来做。
任何帮助都是很好的,谢谢!
发布于 2016-12-01 18:00:35
由于'DATE‘是Date类,在继续使用字符串“rbind”之前,我们可能需要将其更改为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 -2658https://stackoverflow.com/questions/40917344
复制相似问题