r - 用每个组的前n行对数据框进行子集设置,并按变量排序

标签 r group-by data.table plyr

我想为n行添加一个数据帧,这些行按一个变量分组,并按另一个变量降序排列。用一个例子可以很清楚地看出:

    d1 <- data.frame(Gender = c("M", "M", "F", "F", "M", "M", "F", 
  "F"), Age = c(15, 38, 17, 35, 26, 24, 20, 26))

我想为每个性别获取2行,这些行按Age降序排列。所需的输出是:
Gender  Age  
F   35  
F   26  
M   38  
M   26  

我在这里寻找订单,排序和其他解决方案,但找不到适合此问题的解决方案。我感谢您的帮助。

最佳答案

一种使用ddply()中的plyr的解决方案

require(plyr)
ddply(d1, "Gender", function(x) head(x[order(x$Age, decreasing = TRUE) , ], 2))

关于r - 用每个组的前n行对数据框进行子集设置,并按变量排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6075661/

相关文章:

r - 当所有元素都具有相同的值时,热映射颜色

sql - PostgreSQL 11.2 按单个表中的公共(public)属性对对象进行分组

r - 分组是否在data.table 1.12.0中并行化?

MySQL 从每个类别中选择前 N 个最便宜的产品

r - 使用 data.table 在两列之间交换值

R 生成新的 data.table 速度变慢

r - 如何删除 RStudio 查看器 Pane 中绘图的空白/白边距

r - 使用 str_extract_all 仅提取 R 中的前两个单词?

r - ggplot标签中的多个逻辑符号 "<" "<="

mysql - 根据最大订单从 2 个不同的表中选择数据