原始数据:
TRANS_DATE ID Value
10/2/2014 CPSG_CPM 2765.98
10/3/2014 CPSG_CPM 2840.76
10/6/2014 CPSG_CPM 3009.83
10/7/2014 CPSG_CPM 3025.05
10/8/2014 CPSG_CPM 2997.1
10/9/2014 CPSG_CPM 2946.08
10/10/2014 CPSG_CPM 2977.12
10/13/2014 CPSG_CPM 2797.95
10/14/2014 CPSG_CPM 2805.27
10/15/2014 CPSG_CPM 2768.37
10/16/2014 CPSG_CPM 2699.4
10/17/2014 CPSG_CPM 2841.46
10/20/2014 CPSG_CPM 2876.85
我想添加另一个列,它会为我提供上一个日期值的减去信息。
TRANS_DATE ID Value Diff
10/2/2014 CPSG_CPM 2765.98 74.78
10/3/2014 CPSG_CPM 2840.76 169.07
10/6/2014 CPSG_CPM 3009.83 15.22
10/7/2014 CPSG_CPM 3025.05 -27.95
10/8/2014 CPSG_CPM 2997.1 -51.02
10/9/2014 CPSG_CPM 2946.08 31.04
10/10/2014 CPSG_CPM 2977.12 -179.17
10/13/2014 CPSG_CPM 2797.95 7.32
10/14/2014 CPSG_CPM 2805.27 -36.9
10/15/2014 CPSG_CPM 2768.37 -68.97
10/16/2014 CPSG_CPM 2699.4 142.06
10/17/2014 CPSG_CPM 2841.46 35.39
10/20/2014 CPSG_CPM 2876.85
答案 0 :(得分:0)
不是最优雅的解决方案,但它确实有效。 dx
cbind
需要将{0}作为data.frame
的最后一个元素追加为零{/ 1}}
d = as.Date(c("10/2/2014","10/3/2014","10/6/2014","10/7/2014"),format="%m/%d/%Y")
x = c(2765.98,2840.76,3009.83,3025.05)
dx = diff(x)
dx = append(dx,0)
print(dx)
df = data.frame(d,x,dx)
View(df)
d x dx
1 2014-10-02 2765.98 74.78
2 2014-10-03 2840.76 169.07
3 2014-10-06 3009.83 15.22
4 2014-10-07 3025.05 0.00