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

R语言使用sample抽样时如何获取数据框未选中的行索引?

R中获取sample抽样未选中行索引的方法

你可以通过以下两种常用方法实现需求:

  • 方法1:使用setdiff()求差集(最简洁)
    setdiff()会返回第一个向量中不在第二个向量里的元素,正好对应未被抽中的行索引,代码如下:
# 沿用你示例中的变量
unselected_rid <- setdiff(seq_len(nrow(df)), rid)
# 输出验证
print(unselected_rid)
# 运行结果:[1] 1 4 5

你可以直接用这个索引提取未选中的行:df[unselected_rid, ]

  • 方法2:使用%in%逻辑匹配取反
    如果需要自定义判断逻辑,可以用匹配运算符结合取反实现:
all_row_index <- seq_len(nrow(df))
unselected_rid <- all_row_index[!all_row_index %in% rid]
print(unselected_rid)
# 运行结果:[1] 1 4 5

两种方法的差异很小:setdiff()会自动对结果做升序排序,逻辑匹配法会保留原行索引的排列顺序,对于行索引这类本身就是升序的序列,两种方法返回结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:54:06