Я ищу векторизованное решение. Скажем, я генерирую 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.
rep
неверен по описанию. Возможно использовать:samp <- matrix(sample(c(seq(1,5,1)), size = 1000, replace = TRUE), nrow=100)
- person N8TRO   schedule 29.01.2016b
имеет смысл, но я добавил ее в ответ, чтобы быть тщательным. - person N8TRO   schedule 29.01.2016