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

如何在R中从含1296765条观测的数据集随机抽取10%样本?

解决dplyr抽样只抽10行的问题

你用sample_n()的时候,第二个参数是指定具体抽取的行数,所以传10就只会拿到10行数据,不是10%的比例。要按比例抽样,有两种简单方法:

方法1:用sample_frac()直接按比例抽取

dplyr里专门有按比例抽样的函数sample_frac(),第二个参数传抽样比例即可:

library(dplyr)  
x <- sample_frac(train, 0.1)  # 抽取10%的数据

方法2:计算总行数的10%传给sample_n()

如果你还是想用sample_n(),可以先算出总行数的10%,再把这个数值传进去(注意用round()取整,因为行数必须是整数):

library(dplyr)  
sample_size <- round(nrow(train) * 0.1)  # 计算1296765的10%,约129677行
x <- sample_n(train, sample_size)

两种方法都能实现你要的随机抽取10%数据的需求,推荐第一种,更简洁直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:30:58