[问题] 用不同条件抓data

楼主: joson4921 (特务)   2017-08-08 01:40:28
- 问题: 当你想要问问题时,请使用这个类别。
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
请简略描述你所要做的事情,或是这个程式的目的
手边有资料 df 如下:
Goback Toward TravelTime UniqueID
1 A1 32 AA01
1 A2 47 AA01
1 A3 83 AA01
1 A4 122 AA01
1 A5 143 AA01
0 B1 284 BB01
0 B2 302 BB01
0 B3 419 BB01
0 B4 492 BB01
0 B5 701 BB01
0 B1 104 BB02
0 B2 231 BB02
0 B3 245 BB02
0 B4 268 BB02
0 B5 313 BB02
1 A1 31 AA02
1 A2 83 AA02
1 A3 172 AA02
1 A4 198 AA02
1 A5 276 AA02
希望用同一 UniqueID 字段的五笔资料,算出他们之间 TravelTime 的时间差(秒数)
并新增 TT_diff 字段容纳其结果,但这边有个问题
因为 5笔 TravelTime资料只能产出 4个 时间差(秒数)
以 UniqueID == AA02 为例,产出之TT_diff字段结果如下
(第一笔 TT_diff = 83-31 = 52, 以此类推)
TT_diff
52
89
26
78
但我希望产出的结果能够长得像这样
也用 UniqueID == AA02 的第一笔资料(TravelTime = 31)塞进去 TT_diff 字段
后面再接上面产出的4个时间差,像下面这样:
TT_diff(我想要的结果)
31
52
89
26
78
因为之前用 [, := ] 跑运算(好像是magrittr?)没有跑过这种同时设定两种条件的
用别的方法试了两天,弄不出我想要的结果,
如底下程式码所示,那个31没办法出现在第一列.而且最后一列会出现NA
请问板上大大,如果要产出上面我想要的结果,程式码该怎么修正,谢谢!!
[程式范例]:
<我的程式码>
result <- df[ , .(TT_diff = TravelTime[2L:5L]-TravelTime[1L:4L] ),
by=.(UniqueID)]
TT_diff(跑出来的结果,跟想要的差很多)
52
89
26
78
NA
[环境叙述]:
[关键字]:
选择性,也许未来有用

Links booklink

Contact Us: admin [ a t ] ucptt.com