我试图将几个连续的行分组(并赋予它们相同的值),同时将某些行留空(当某些条件未满足时)。将序列中的值赋给一组连续的行,留下一些行为空
我的数据是位置(xy坐标),测量它们的日期/时间以及测量之间的时间跨度。不知何故简化,它们看起来就像这样:
ID X Y Time Span
1 3445 7671 0:00 -
2 3312 7677 4:00 4
3 3309 7680 12:00 8
4 3299 7681 16:00 4
5 3243 7655 20:00 4
6 3222 7612 4:00 8
7 3260 7633 0:00 4
8 3254 7641 8:00 8
9 3230 7612 0:00 16
10 3203 7656 4:00 4
11 3202 7678 8:00 4
12 3159 7609 20:00 12
...
我想一个值分配给被4个小时的时间跨度内测量的位置每一个序列,使我的数据是这样的:
ID X Y Time Span Sequence
1 3445 7671 0:00 - -
2 3312 7677 4:00 4 1
3 3309 7680 12:00 8 NA
4 3299 7681 16:00 4 2
5 3243 7655 20:00 4 2
6 3222 7612 4:00 8 NA
7 3260 7633 0:00 4 3
8 3254 7641 8:00 8 NA
9 3230 7612 0:00 16 NA
10 3203 7656 4:00 4 4
11 3202 7678 8:00 4 4
12 3159 7609 20:00 12 NA
我试过几种算法用循环“为”加“ifelse”条件,如:
Sequence <- for (i in 1:max(ID)) {
ifelse (Span <= 4, i+1, "NA")
}
没有任何的运气。我知道我的尝试是不正确的,但是我的编程技巧是非常基本的,并且我还没有发现任何类似的问题。
任何想法将不胜感激!
你的伪代码表示,如果'跨度<= 4,'Sequence'应该是'我+ 1'其中'i'是行数。然而,在你想要的输出中,你有多行具有相同的“序列”值? (例如具有'序列'2的两行)。那么,你想如何为行分配'Sequence'值? –