总结数据处理问题我正在努力争取一个标题很难,但一个简短的例子总结了这一点。我有航空公司相关数据的数据表,其中包含原始机场和目的地机场的列。我的数据如下:
my_data = collect(filter(flightdata, TailNum == t_n) %>%
select(airport1=Origin,airport2=Dest,ActualElapsedTime) %>%
group_by(airport1,airport2) %>%
summarize(ActualElapsedTime = mean(ActualElapsedTime)))
my_data
airport1 airport2 ActualElapsedTime
<chr> <chr> <dbl>
1 HNL ITO 51.67416
2 HNL KOA 44.00937
3 HNL LIH 37.98526
4 HNL OGG 37.52542
5 ITO HNL 50.02260
6 ITO OGG 39.22222
7 KOA HNL 43.52518
8 KOA OGG 34.20370
9 LIH HNL 33.47679
10 LIH OGG 47.06522
11 OGG HNL 35.28550
12 OGG ITO 37.57143
13 OGG KOA 31.61364
14 OGG LIH 45.46667
这个表是group_by的结果,并总结了我做的,也如上所示。但是,当我进行分组和总结时,我希望将它分组(HNL ITO)和(ITO HNL)在一起,而不是分开(第1行有(HNL,ITO),第5行有(ITO,HNL)) 。这些分组行在我的输出中是分开的原因是因为row1对应于从HNL机场到ITO机场的航班,而row5对应于从ITO到HNL的航班。我得到的数据帧将分为7组,而不是14组。
对此的任何想法将不胜感激。我只是学习dplyr和管道的%&gt;%它们很棒,我也想得到它。
编辑 - 我尝试将我的选择线更改为
select(airport1=pmin(Origin,Dest),airport2=pmax(Origin,Dest),ActualElapsedTime)
但它不起作用......
答案 0 :(得分:2)
一种方法是创建一个新变量,其中包含 airport1 和 airport2 的每个配对,然后使用它作为分组变量汇总数据。
在这种情况下,我们通过按字母顺序粘贴 airport1 和 airport2 的名称来创建一个名为组合的变量,因此我们有一个每个配对的独特价值。
my_data <- collect(
flightdata %>%
filter(TailNum == t_n) %>%
select(airport1 = Origin, airport2 = Dest, ActualElapsedTime) %>%
mutate(combination = ifelse(airport1 < airport2,
paste(airport1, airport2),
paste(airport2, airport1))
) %>%
group_by(combination) %>%
summarize(ActualElapsedTime = mean(ActualElapsedTime))
)