【发布时间】:2016-05-06 18:22:14
【问题描述】:
我正在寻找矢量化解决方案。假设我生成了 100 个带有替换的 10 个抽签样本。接下来,我想找到累积和矩阵的第一个元素的第一个索引,这意味着某些条件,例如 >=10。然后,我想将每一行的所有元素相加,直到第一个元素的索引满足该条件。 MWE:
set <- c(1, 5, 7, 13, 15, 17)
samp <- samp <- matrix(sample(set, size = 100*10, replace = TRUE), nrow=simCount) # generate 100 samples of 10 draws
b <- matrix(apply(samp, 1, cumsum),
nrow = 100, byrow=TRUE) >= 10 # compare each element with 10, return boolean
我不确定如何将apply 与which(x)=="TRUE" 一起使用。我尝试了一些变体,但不确定如何正确编码。
得到它之后,我将能够使用 apply(b, 1, min) 为 >=10 的每一行返回第一个元素(最小索引)。
【问题讨论】:
-
您的 MWE 中有错字。请修复。
-
@Pascal 已修复,谢谢
-
首先根据描述,您的带有
rep的样本不正确。也许使用:samp <- matrix(sample(c(seq(1,5,1)), size = 1000, replace = TRUE), nrow=100) -
@N8TRO 很好,谢谢!绝对不想继续重复我的抽奖。固定。
-
我不确定
b部分是否有意义,但我将其添加到答案中只是为了彻底。