Добрый день всем,
Я борюсь с созданием столбца, который бы заполнял значения, используя функцию создания значения случайного значения, которая принимает значение другого столбца в качестве аргумента.
Немного контекста - у меня есть таблица данных с временем выполнения в столбце:
library(data.table)
dt <- data.table(Item = rep(123456,each = 1000), LT = rnorm(1000,mean = 10, sd = 3))
и функция:
rand_ddlt_norm <- function(Lt,mean,sd){
sign(Lt) * ( sum( rnorm( floor(abs(Lt)), mean, sd) ) +
rnorm(1, mean, sd) * ( abs(Lt)%%1) )
}
Вышеуказанная функция предназначена для расчета спроса в течение времени выполнения заказа для каждой строки.
К сожалению, я не могу этого сделать:
dt[,ddlt := rand_ddlt_norm(LT, mean = 100, sd = 30)]
потому что все строки будут заполнены одинаковым номером.
Я, очевидно, мог бы поставить это в цикл, но для 10 000 итераций, более 20 000 продуктов и многочисленных типов распределения время вычислений становится нелепым.
Буду любезно приветствовать любые предложения о том, как можно оптимизировать этот код без выполнения цикла.