【发布时间】:2017-10-25 15:37:41
【问题描述】:
我有一个包含 3 列的数据框 1)时间戳,2)组 3)组(子组)内的索引。一个组有 6 行/索引,并且应该始终具有相同的时间戳,最大允许偏差为 2 秒。 有时来自两个不同组的某些元素具有相同的时间戳,但其他元素则没有。我需要能够根据时间戳排列数据以对组进行聚类,但首先考虑到组中的元素可能具有最大 2 秒的偏移量。
df1 <- data.frame(
timestamp1 = as.POSIXct(c(
'2017-09-07 15:16:27', '2017-09-07 15:16:27', '2017-09-07 15:16:27', '2017-09-07 15:16:27', '2017-09-07 15:16:27', '2017-09-07 15:16:27',
'2017-09-07 15:17:19', '2017-09-07 15:17:19', '2017-09-07 15:17:19', '2017-09-07 15:17:19',
'2017-09-07 15:17:19', '2017-09-07 15:17:19', '2017-09-07 15:17:19', '2017-09-07 15:17:19', '2017-09-07 15:17:19',
'2017-09-07 15:17:20', '2017-09-07 15:17:20',
'2017-09-07 15:17:20'
)),
group = c(
'aaa', 'aaa', 'aaa', 'aaa', 'aaa', 'aaa',
'a', 'a', 'a', 'a',
'aaa', 'aaa', 'aaa', 'aaa', 'aaa',
'a', 'a',
'aaa'
),
index_inside_group = c(
1, 2, 3, 4, 5, 6,
1, 3, 4, 6,
1, 2, 4, 5, 6,
2, 5,
3
)
)
> df1
timestamp1 group index_inside_group
1 2017-09-07 15:16:27 aaa 1
2 2017-09-07 15:16:27 aaa 2
3 2017-09-07 15:16:27 aaa 3
4 2017-09-07 15:16:27 aaa 4
5 2017-09-07 15:16:27 aaa 5
6 2017-09-07 15:16:27 aaa 6
7 2017-09-07 15:17:19 a 1
8 2017-09-07 15:17:19 a 3
9 2017-09-07 15:17:19 a 4
10 2017-09-07 15:17:19 a 6
11 2017-09-07 15:17:19 aaa 1
12 2017-09-07 15:17:19 aaa 2
13 2017-09-07 15:17:19 aaa 4
14 2017-09-07 15:17:19 aaa 5
15 2017-09-07 15:17:19 aaa 6
16 2017-09-07 15:17:20 a 2
17 2017-09-07 15:17:20 a 5
18 2017-09-07 15:17:20 aaa 3
简而言之,我需要从数据df1 到df2
> df2
timestamp1 group index_inside_group
1 2017-09-07 15:16:27 aaa 1
2 2017-09-07 15:16:27 aaa 2
3 2017-09-07 15:16:27 aaa 3
4 2017-09-07 15:16:27 aaa 4
5 2017-09-07 15:16:27 aaa 5
6 2017-09-07 15:16:27 aaa 6
7 2017-09-07 15:17:19 a 1
8 2017-09-07 15:17:20 a 2
9 2017-09-07 15:17:19 a 3
10 2017-09-07 15:17:19 a 4
11 2017-09-07 15:17:20 a 5
12 2017-09-07 15:17:19 a 6
13 2017-09-07 15:17:19 aaa 1
14 2017-09-07 15:17:19 aaa 2
15 2017-09-07 15:17:20 aaa 3
16 2017-09-07 15:17:19 aaa 4
17 2017-09-07 15:17:19 aaa 5
18 2017-09-07 15:17:19 aaa 6
在df2 中,数据按group 的优先级排列,然后是index_inside_group,仅在最后timestamp1 进行排列
【问题讨论】:
标签: r