我在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
Run Code Online (Sandbox Code Playgroud)
我需要一个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
Run Code Online (Sandbox Code Playgroud)
尝试slice从dplyr
library(dplyr)
x %>%
group_by(Gender) %>%
slice(1:3)
Run Code Online (Sandbox Code Playgroud)
或者使用data.table
library(data.table)
setDT(x)[,.SD[1:3] , Gender]
Run Code Online (Sandbox Code Playgroud)