我在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
答案 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))