【发布时间】:2016-08-24 19:11:34
【问题描述】:
我正在尝试按员工计算前 3 名费率,但保留位置列。
这就是一切的样子:
place<-c('Dest1', 'Dest2', 'Dest3', 'Dest4', 'Dest5', 'Dest6', 'Dest1', 'Dest2', 'Dest3', 'Dest4', 'Dest5', 'Dest6')
rate <- c(0.5, 0.6, 0.7, 0.2, 0.5, 0.9, 0.8,0.9,0.2,0.5,0.3,0.7)
employee <- c('A','A','A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B')
employ.data <- data.frame(employee, rate, place)
数据框如下所示:
employee rate place
1 A 0.5 Dest1
2 A 0.6 Dest2
3 A 0.7 Dest3
4 A 0.2 Dest4
5 A 0.5 Dest5
6 A 0.9 Dest6
7 B 0.8 Dest1
8 B 0.9 Dest2
9 B 0.2 Dest3
10 B 0.5 Dest4
11 B 0.3 Dest5
12 B 0.7 Dest6
如何提取employee 的前 3 个费率并同时保留place 列。我知道如何在dplyr 中执行group_by,但这将消除place 列。
我希望最终结果如下所示:
employee rate place
2 A 0.6 Dest2
3 A 0.7 Dest3
6 A 0.9 Dest6
7 B 0.8 Dest1
8 B 0.9 Dest2
12 B 0.7 Dest6
谢谢!
【问题讨论】:
-
@akrun 它不是重复的,因为我想保留
place列。我已经知道如何使用group_by了。 -
对不起。我重新打开它并发布了一个解决方案。请检查。
标签: r dataframe dplyr aggregate