Rbind 行差
Rbind Difference of rows
我想确定每一行的差异,并在末尾绑定总差异。以下是示例数据集:
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
我可以很容易地按列完成,但很难按行完成。
如有帮助将不胜感激!
由于 'DATE' 是 Date
class,我们可能需要将其更改为 character
,然后再继续 rbind
ing 字符串 "DIFFERENCE".除此之外,对 '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
我想确定每一行的差异,并在末尾绑定总差异。以下是示例数据集:
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
我可以很容易地按列完成,但很难按行完成。
如有帮助将不胜感激!
由于 'DATE' 是 Date
class,我们可能需要将其更改为 character
,然后再继续 rbind
ing 字符串 "DIFFERENCE".除此之外,对 '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