我想附加一列,指示m+1
-th col 之间的数据差异。第n
- 行和m
第 - 列。第n+1
- 行。
数据格式为df
,
set.seed(2)
user.list = c('A','B','C')
t = seq(as.Date("2015/1/1"), as.Date("2015/12/31"), 'days')
st = sort(sample(t, 10))
et = st+30
df = data.frame(
user=sort(sample(user.list, 10, replace=T)),
start=st,
due=et
)
预期的输出应该是
user start due td
1 A 2015-02-16 2015-03-18 -16
2 A 2015-03-02 2015-04-01 -23
3 A 2015-03-09 2015-04-08 70
4 A 2015-06-17 2015-07-17 197*
5 B 2015-07-15 2015-08-14 -17
6 B 2015-07-28 2015-08-27 17
7 B 2015-09-13 2015-10-13 109*
8 C 2015-10-26 2015-11-25 11
9 C 2015-12-06 2016-01-05 -29
10 C 2015-12-07 2016-01-06 24*
以td
天为单位表示时差。例如,对于 user A
,-16 来自 2015-03-02 和 2015-03-18 之间的差异;-23 是 2015-03-09 和 2015-04-01 之间的差值,等等。其中的数字*
是每个用户的最后一行,或者是从固定日期 2016-01-30 和 2015- 之间的差值得出的07-17(对于用户 A)。
dlply
如果没有(划分为用户列表)for
和if
(扫描每一行并查看它是否是用户的最后一个),如何通过有效的方式解决它?