【发布时间】:2017-12-18 19:37:30
【问题描述】:
数据
我有 2 个矩阵。 traf_id 表示两列中两个红绿灯的 ID(如果红绿灯离汽车最近,则位于第一列)。第二个矩阵traf_state 表示交通灯的状态(1 = 红色,2 = 绿色)(同样,最近的灯的状态放在第一列)。
traf_id <- matrix(data = c(rep(12353,4), rep(12453,4), rep(12453,4), rep(12353,4)), nrow = 8, ncol = 2)
[,1] [,2]
[1,] 12353 12453
[2,] 12353 12453
[3,] 12353 12453
[4,] 12353 12453
[5,] 12453 12353
[6,] 12453 12353
[7,] 12453 12353
[8,] 12453 12353
traf_state <- matrix(data = c(rep(1,8), rep(2,8)), nrow = 8, ncol = 2)
[,1] [,2]
[1,] 1 2
[2,] 1 2
[3,] 1 2
[4,] 1 2
[5,] 1 2
[6,] 1 2
[7,] 1 2
[8,] 1 2
在上述数据中,交通信号灯12353 在前 4 个时间帧(traf_state 等于 1)中距离汽车最近,因此放在第一列。从第 5 帧到第 8 帧,12453 是最接近的。
我想做什么
我想创建一个包含 3 列的数据框。第一个应该是时间范围列,另外两个应该包含给定时间范围内给定交通灯的交通状态:
foo <- data.frame(frames = 1:8, state_12353 = c(rep(1,4), rep(2,4)), state_12453 = c(rep(2,4), rep(1,4)))
> foo
frames state_12353 state_12453
1 1 1 2
2 2 1 2
3 3 1 2
4 4 1 2
5 5 2 1
6 6 2 1
7 7 2 1
8 8 2 1
请指导我dplyr 中的哪些函数与创建上述数据框相关。
【问题讨论】: