<分区>
按q
分组后,想分别从两个不同的w
e
列中提取两个最大值
输入数据:
q <- c(503,503,503,503,503,503,503,503,503,503,503,503,503,510,510,510,510,510,510,510,510,510,510,510,510,525,526,526)
w <- c(56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56)
e <- c(26,26,26,26,26,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,30,30,30,30,33,33,33)
r <- data.frame(q,w,e, stringsAsFactors = FALSE)
代码:
r %>% group_by(q) %>% slice(which.max(w & e))
我的输出:
q w e
<dbl> <dbl> <dbl>
1 503. 56. 26.
2 510. 56. 28.
3 525. 56. 33.
4 526. 56. 33.
预期输出:
q w e
1 503 56 28
2 510 56 30
3 525 56 33
4 526 56 33
宁愿使用 %>%
和 slice
命令作为上面的代码,而不是分别寻找最大值 q$w
q $e
然后通过 q
合并(想避免 merge
因为我的实际数据很大 object.size
~2GB)