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

如何在R语言的tibble中随机抽取y值小于0.5的20条观测数据

解决R语言中随机抽取符合条件观测的问题

嘿,这个需求很容易调整实现,我来帮你修改代码:

你原来的代码是通过arrange(y)按y值从小到大排序后取前20条,这是有序选取而非随机抽取。要实现随机选取y < 0.5的20条观测,可以结合filter()和slice_sample()来完成,具体步骤如下:

完整代码示例

library(dplyr)

# 定义初始tibble
preds <- tibble(x=1:100, y=seq(from=0.01,to=1,by=0.01))
number_of_likely_negatives <- 20

# 随机抽取y值小于0.5的20条观测
likely_negatives <- preds %>%
  filter(y < 0.5) %>%  # 第一步:筛选出所有y < 0.5的观测
  slice_sample(n = number_of_likely_negatives)  # 第二步:从筛选结果中随机抽取指定数量

补充说明

  • slice_sample()是dplyr 1.0.0及以上版本的推荐函数,专门用于随机抽样;如果你的dplyr版本较低,可能需要用已被弃用的sample_n(),但更建议你升级dplyr到最新版本。
  • 你的初始数据中,y < 0.5的观测共有49条(y从0.01到0.49),完全满足抽取20条的需求;如果遇到符合条件的观测数量不足的情况,可以添加replace = TRUE参数允许重复抽样(比如slice_sample(n = number_of_likely_negatives, replace = TRUE))。

这样就能得到真正随机的20条符合条件的数据啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 21:12:28