You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中按组随机抽样并保留组内全部观测值?

解决随机抽取完整组的问题

你需要的是随机抽取整个分组而非组内部分行,之前的代码是对每个组单独抽样,所以不符合需求。以下是两种可行的实现方式:

使用dplyr实现

先给数据添加分组标识,再随机选中目标数量的组,最后筛选出这些组的所有观测值:

library(dplyr)

mtcars %>%
  mutate(number = rep(1:8, each=4)) %>%
  filter(number %in% sample(unique(number), 2))

这段代码会先生成8个每组4行的分组,随机挑选2个组,最终输出这2个组的全部8条数据,完美匹配你的需求。

使用Base R实现

如果不想依赖dplyr,用基础R代码也能完成:

# 给mtcars添加分组列
mtcars$number <- rep(1:8, each=4)
# 随机抽取2个唯一的组编号
selected_groups <- sample(unique(mtcars$number), 2)
# 筛选出选中组的所有数据
sampled_df <- mtcars[mtcars$number %in% selected_groups, ]

两种方式的核心逻辑都是:先确定要保留的组,再提取这些组的全部条目,这样就能在缩小数据集的同时,完整保留每个购物篮(分组)的所有数据。

内容的提问来源于stack exchange,提问作者hachiko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:25:23