从data.frame创建1000个30个观测值的样本

时间:2016-09-05 09:03:58

标签: r dataframe random bootstrapping

我有一个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

有什么建议吗?

2 个答案:

答案 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)

您可以使用samplereplicate创建100个长度为30的样本并进行替换。您不需要启动包。根据您的回答,您可以使用simplify = FALSE来防止强制进入数组。

replicate(100,sample(df$Letter, 30, replace =TRUE), simplify = FALSE)

结果将是一个列表。