我有一个data.frame,我需要创建1000个随机样本,每个样本包含30个观察值。
这是我的data.frame的一个例子:
df = read.table(text = 'ID Letter
1 L
2 R
3 T
4 U
5 I
6 K
7 Y
8 Q
9 A
10 R', header = TRUE)
必须采样的列是df$Letter
。
有什么建议吗?
答案 0 :(得分:0)
感谢@shayaa,这是我的问题的解决方案:
samples = replicate(1000,sample(df$Letter, 30, replace =TRUE)) #a matrix has been created
为方便起见,我将矩阵转换为列表:
samples_list = split(samples, rep(1:ncol(samples), each = nrow(samples)))
答案 1 :(得分:0)
您可以使用sample
和replicate
创建100个长度为30的样本并进行替换。您不需要启动包。根据您的回答,您可以使用simplify = FALSE
来防止强制进入数组。
replicate(100,sample(df$Letter, 30, replace =TRUE), simplify = FALSE)
结果将是一个列表。