R语言如何从向量生成多组随机样本并构建指定维度的data.frame
R语言生成指定维度整数样本data.frame的问题解决
错误原因
replicate()函数第一个参数要求为重复执行的次数,你传入了长度为10的向量X,不符合参数规则,因此抛出长度相关报错。
同时你混淆了抽样函数的使用:sample.int(n, size)是从1到n的整数中抽样,如果你需要从自定义向量X中抽样,应使用sample(x, size)。
符合需求的实现代码
你的需求是生成6行4列(6组、每组容量为4)的整数样本data.frame,对应实现代码如下:
set.seed(123) X <- c(4,10,15,100,50,31,311,225,85,91) # 重复4次抽样,每次从X中抽取6个样本,结果转换为data.frame S <- as.data.frame(replicate(4, sample(x = X, size = 6, replace = TRUE))) # 验证维度,输出为 6 4 符合要求 dim(S)
可选参数调整
- 若不需要有放回抽样,将
replace = TRUE改为replace = FALSE即可,注意不放回抽样时size取值不能大于抽样池的长度 - 若你需要的是从1到6的整数中抽样(匹配你原代码的
sample.int逻辑),将sample(x = X, size = 6, replace = TRUE)替换为sample.int(n = 6, size = 6, replace = TRUE)即可
内容的提问来源于stack exchange,提问作者Hydro
相关产品推荐
相关产品推荐

