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

在R中按col_2前缀分层随机抽取指定行数的实现方法

按特定前缀分组随机抽取行的R语言解决方案

要实现从col_2以"p"开头的行中随机选6行、以"q"开头的行中随机选6行的需求,你可以用dplyr包的分组抽样功能完成,具体步骤如下:

代码实现

# 加载dplyr包(未安装先运行install.packages("dplyr"))
library(dplyr)

# 设置随机种子(可选,保证抽样结果可重复)
set.seed(123)

# 假设你的数据框名为df,执行分组抽样
sampled_df <- df %>%
  # 筛选出col_2以p或q开头的行
  filter(grepl("^p|^q", col_2)) %>%
  # 按col_2的首字符分组
  group_by(prefix = substr(col_2, 1, 1)) %>%
  # 每组随机抽取6行
  sample_n(size = 6) %>%
  # 取消分组状态
  ungroup() %>%
  # 移除临时创建的prefix列(可选)
  select(-prefix)

代码说明

  • filter(grepl("^p|^q", col_2)):通过正则表达式^p|^q筛选出col_2以p或q开头的行,自动排除以i开头的无关行;
  • group_by(prefix = substr(col_2, 1, 1)):提取col_2的第一个字符作为分组标识,把数据分成"p"和"q"两个独立组;
  • sample_n(size = 6):对每个分组独立执行随机抽样,每组抽取6行;
  • ungroup():取消分组状态,避免后续数据操作受分组限制;
  • select(-prefix):移除临时生成的分组列,保持原数据结构整洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:41:15