【发布时间】:2017-04-11 04:06:57
【问题描述】:
我有一个类似的库存数据框:
set.seed(5)
library(data.table)
#replicated data
invntry <- data.table(
warehouse <- sample(c("NY", "NJ"), 1000, replace = T),
intid <- c(rep(1,150), rep(2,100), rep(3,210), rep(4,50), rep(5,80), rep(6,70), rep(7,140), rep(8,90), rep(9,90), rep(10,20)),
placement <- c(1:150, 1:100, 1:210, 1:50, 1:80, 1:70, 1:140, 1:90, 1:90, 1:20),
container <- sample(1:100,1000, replace = T),
inventory <- c(rep(3242,150), rep(9076,100), rep(5876,210), rep(9572,50), rep(3369,80), rep(4845,70), rep(8643,140), rep(4567,90), rep(7658,90), rep(1211,20)),
stock <- c(rep(3200,150), rep(10000,100), rep(6656,210), rep(9871,50), rep(3443,80), rep(5321,70), rep(8659,140), rep(4567,90), rep(7650,90), rep(1298,20)),
risk <- runif(100)
)
setnames(invntry, c("warehouse", "intid", "placement", "container", "inventory", "stock", "risk"))
invntry[ , ticket := 1:.N, by=c("intid", "warehouse")]
invntry$ticket[invntry$warehouse=="NJ"] <- 0
#ensuring some same brands are same container
invntry$container[27:32] <- 6
invntry$container[790:810] <- 71
invntry[790:820,]
实际数据中有更多变量,我想使用这些变量来比较不同containers 中的相同项目itid。所以我想对每个项目的给定样本大小范围 n 进行多次试验,这样我就一直随机选择一个项目,直到我从不同的容器中获得 n 个项目,但如果它们已被选中,则保留重复项。因此,对于第 8 项的 6 样本大小,可能需要 7 次尝试才能获得 6 的样本大小:
warehouse intid placement container inventory stock risk ticket
21: NY 8 10 71 4567 4567 0.38404806 5
22: NY 8 11 96 4567 4567 0.64665968 6
23: NJ 8 12 15 4567 4567 0.68265602 0
24: NY 8 13 19 4567 4567 0.84437586 7
21: NY 8 10 71 4567 4567 0.38404806 5
26: NY 8 15 34 4567 4567 0.69580270 8
28: NY 8 17 78 4567 4567 0.25352370 9
我尝试在此站点上进行搜索,但找不到上述内容以及想要从试验的行列中计算每个试验的一些值和样本大小的内容,所以我认为我必须使用 for循环,以便我可以区分每个样本大小的每个试验。总而言之,有两个目标:
对每个
itid进行随机抽样 n 累积选择唯一容器,保持itids 已被选中能够针对每个项目的每个样本量对每个试验的变量进行计算
有什么想法吗?
*不必涉及data.table,就是这样开始的
(我认为这本质上是一个基本的概率示例,即继续从骨灰盒中抽取弹珠,直到你拥有所有不同颜色的样本大小——但即使意识到这也无助于我找到解决方案!)
【问题讨论】: