根据R中的分类变量,从数据框中子集n行数

时间:2015-04-22 16:20:50

标签: r rows subset

我在R中有一个数据框(比如说x)

> x
Height  Weight Gender
5     60    m
5     70    m
6     80    m
4     90    m
4     60    m
5     70    f
5     80    f
6     60    f
4     90    f
4     60    f

我需要一个R代​​码,它会产生一个新的数据帧,比如y,它按性别取X的子集,只有每个性别的前三行(1:3)给出如下结果。

>y
Height  Weight Gender
5       60      m
5       70      m
6       80      m
5       70      f
5       80      f
6       60      f

2 个答案:

答案 0 :(得分:4)

l1

尝试slice
dplyr

或使用library(dplyr) x %>% group_by(Gender) %>% slice(1:3)

data.table

答案 1 :(得分:2)

尝试by

do.call(rbind, by(X, X$Gender, head, 3))