【发布时间】:2019-01-17 14:17:57
【问题描述】:
我正在尝试连接使用 4 km/hr 到 100 km/hr 速度的 mac 地址通过的链接。
我有链接、日期、Mac 地址、时间、速度、状态的数据框。状态是我检查“小于 4 公里/小时但大于 100 公里/小时”为真的列。
我想把每个mac地址的行程分开一天。当 False 切换到 True 或 True 切换到 False 时,行程将分开。
Link Date Mac address Speed Status
247-237 1/15/2018 00:00:00:00:00:00 25.76649746 False
237-235 1/15/2018 00:00:00:00:00:00 2.26099837 True
235-109 1/15/2018 00:00:00:00:00:00 39.83606557 False
214-106 1/15/2018 00:00:00:00:00:00 1.92997812 True
106-215 1/15/2018 00:00:00:00:00:00 4.22249093 False
215-253 1/15/2018 00:00:00:00:00:00 3.17867903 True
253-245 1/15/2018 00:00:00:00:00:00 1.55383123 True
245-238 1/15/2018 00:00:00:00:00:00 4.63823442 False
238-243 1/15/2018 00:00:00:00:00:00 33.21573948 False
241-233 1/15/2018 00:00:00:00:00:00 12.30440587 False
233-248 1/15/2018 00:00:00:00:00:00 6.95569265 False
248-211 1/15/2018 00:00:00:00:00:00 12.04411765 False
211-108 1/15/2018 00:00:00:00:00:00 9.40500000 False
108-202 1/15/2018 00:00:00:00:00:00 72.00000000 False
202-212 1/15/2018 00:00:00:00:00:00 15.14371257 False
212-239 1/15/2018 00:00:00:00:00:00 7.81390049 False
239-230 1/15/2018 00:00:00:00:00:00 217.96363636 True
230-229 1/15/2018 00:00:00:00:00:00 21.73090909 False
229-252 1/15/2018 00:00:00:00:00:00 7.87826087 False
252-244 1/15/2018 00:00:00:00:00:00 2.77302675 True
244-232 1/15/2018 00:00:00:00:00:00 0.21963016 True
我按日期、Mac 地址和状态对数据进行分组。然后我连接链接,但是链接是连接的,因此在组中都是 False/True。
df <- df %>% arrange(Date,Mac address,Time) %>% group_by(Date,Mac address,Status) %>% summarise(Connect=paste(Link, collapse="_"))
然后,结果是这样的。
Date Mac address Status Link
1/15/2018 00:00:00:00:00:00 False 247-237_235-109_106-215_245-238_238-243_
241-233_233-248_248-211_211-108_108-202_
202-212_212-239_230-229_229-252
1/15/2018 00:00:00:00:00:00 True 237-235_214-106_215-253_253-245_239-230_
252-244_244-232
但是,我希望连接链接的输出按照 False/True 切换的顺序输出。
Date Mac address Status Link
1/15/2018 00:00:00:00:00:00 False 247-237
1/15/2018 00:00:00:00:00:00 True 237-235
1/15/2018 00:00:00:00:00:00 False 235-109
1/15/2018 00:00:00:00:00:00 True 214-106
1/15/2018 00:00:00:00:00:00 False 106-215
1/15/2018 00:00:00:00:00:00 True 215-253_253-245
1/15/2018 00:00:00:00:00:00 False 245-238_238-243_241-233_233-248_248-211_
211-108_108-202_202-212_212-239
1/15/2018 00:00:00:00:00:00 True 239-230
1/15/2018 00:00:00:00:00:00 False 230-229_229-252
1/15/2018 00:00:00:00:00:00 True 252-244_244-232
提前谢谢你
【问题讨论】:
-
你为什么期望你发布的输出?您提供的预期输出中第 1 行和第 3 行的日期、Mac 地址和状态有什么区别?
-
我的假设是把一天内每个mac地址的行程分开。当 False 切换到 True 或 True 切换到 False 时,行程将分开。 True 是速度小于 4 公里/小时和大于 100 公里/小时的条件。所以我上面的预期输出是一天内有 10 次 mac 地址。但是,从最近的输出来看,有 2 次行程与我的假设不符。
标签: r group-by dplyr row tidyr