在 R 中,基于分类变量从数据帧中提取 n 行的子集
Subset n number of rows from a dataframe, based on a categorical variable, in R
我在 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
从 dplyr
开始尝试 slice
library(dplyr)
x %>%
group_by(Gender) %>%
slice(1:3)
或使用data.table
library(data.table)
setDT(x)[,.SD[1:3] , Gender]
试试by
:
do.call(rbind, by(X, X$Gender, head, 3))
我在 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
从 dplyr
slice
library(dplyr)
x %>%
group_by(Gender) %>%
slice(1:3)
或使用data.table
library(data.table)
setDT(x)[,.SD[1:3] , Gender]
试试by
:
do.call(rbind, by(X, X$Gender, head, 3))