【发布时间】:2014-07-28 17:43:16
【问题描述】:
我有一个 R 脚本,它允许我选择样本大小并随机抽取 50 个替换样本。以下是此代码的示例:
## Creates data frame
df = as.data.table(data)
## Select sample size
sample.size = 5
## Creates Sample 1 (Size 5)
Sample.1<-df[,
Dollars[sample(.N, size=sample.size, replace=TRUE)], by = Num]
Sample.1$Sample <- c("01")
根据上面的R脚本,我先创建了一个数据框。然后我选择我的样本量,在本例中为 5。这仅代表一个样本。由于我缺乏使用 R 的经验,我将这段代码重复了 49 次。最后一段代码如下所示:
## Creates Sample 50 (Size 5)
Sample.50<-df[,
Dollars[sample(.N, size=sample.size, replace=TRUE)], by = Num]
Sample.50$Sample <- c("50")
示例输出如下所示(示例范围 1 - 50):
Num Dollars Sample
1 85000 01
1 4900 01
1 18000 01
1 6900 01
1 11000 01
1 8800 50
1 3800 50
1 10400 50
1 2200 50
1 29000 50
应该注意,变量“Num”是为分组目的而创建的,对我的整体问题(发布在下面)几乎没有影响。
不是重复此代码五十次,而是让我获得五十个单独的样本(大小为 5),我可以创建一个循环来帮助我限制我的代码吗?最近有人要求我创建一万个随机样本,每个样本的大小为 5。我显然不能将此代码重复一万次,所以我需要某种循环。
我的最终输出样本应如下所示(样本范围 1 - 10,000):
Num Dollars Sample
1 85000 01
1 4900 01
1 18000 01
1 6900 01
1 11000 01
1 9900 10000
1 8300 10000
1 10700 10000
1 6800 10000
1 31000 10000
提前感谢大家的帮助,非常感谢。
如果需要,这里是一些示例代码:
Num Dollars
1 31002
1 13728
1 23526
1 80068
1 86244
1 9330
1 27169
1 13694
1 4781
1 9742
1 20060
1 35230
1 15546
1 7618
1 21604
1 8738
1 5299
1 12081
1 7652
1 16779
【问题讨论】:
-
@beginneR,对不起,我试图提供一些有用的东西供您用作示例集。例如,我想要使用此数据集的 10,000 个随机样本(每个样本大小为 5)。唯一感兴趣的变量是美元,不要注意“Num”。这有帮助吗?
标签: r statistics sample random-sample