我有一個包含重復測量的資料集,我想用它來分配 ID。重復測量來自連續幾天的序列。然而,順序本身可能是不平衡的(例如,有些天數較多而有些天數較少,有些從第 1 天開始,而另一些則可能從第 2 天或第 3 天開始)。我的問題是如何在同一序列塊內創建和分配相同的 ID。這是一個玩具資料集:
days <- data.frame(
day = c(1L,2L,3L,4L,5L,6L,8L,9L,10L,
2L,3L,4L,5L,6L,7L,9L,10L,
1L,2L,4L,5L,6L,8L,9L,10L,
1L,2L,3L,4L,5L,6L,7L,8L,9L,10L)
)
這是我期望的最終結果:
id day
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
6 1 6
7 1 8
8 1 9
9 1 10
10 2 2
11 2 3
12 2 4
13 2 5
14 2 6
15 2 7
16 2 9
17 2 10
18 3 1
19 3 2
20 3 4
21 3 5
22 3 6
23 3 8
24 3 9
25 3 10
26 4 1
27 4 2
28 4 3
29 4 4
30 4 5
31 4 6
32 4 7
33 4 8
34 4 9
35 4 10
uj5u.com熱心網友回復:
獲取diff相鄰元素之間的erence并檢查是否小于0,取累積和
days$id <- cumsum(c(TRUE, diff(days$day) < 0))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/456047.html
下一篇:如何根據不同的字符組合拆分熊貓行
