如何在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
相关产品推荐
相关产品推荐

