Хорошо, у меня есть лист Excel с различными сценариями и значениями, и я хотел бы преобразовать некоторые из этих значений с помощью случайного распределения. Я могу сделать это по одному сценарию за раз, но я бы хотел сделать это более компактным способом, возможно, с помощью семейства функций применения. Вот небольшая версия моей матрицы, которую я использую как таблицу данных с setDT:
matrixfromexcel =
Scenario char num1 num2 num3 val1 val2 val3
1 1 0 4 8 1.22 2.31 7.33
1 1 0 4 8 1.22 2.31 7.33
1 1 0 4 8 1.22 2.31 7.33
1 1 0 4 8 1.22 2.31 7.33
1 1 0 4 8 1.22 2.31 7.33
1 1 0 4 8 1.22 2.31 7.33
1 1 0 4 8 1.22 2.31 7.33
1 1 0 4 8 1.22 2.31 7.33
2 5 2 0 1 4.2 5.011 12.542
2 5 2 0 1 4.2 5.011 12.542
2 5 2 0 1 4.2 5.011 12.542
2 5 2 0 1 4.2 5.011 12.542
2 5 2 0 1 4.2 5.011 12.542
2 5 2 0 1 4.2 5.011 12.542
2 5 2 0 1 4.2 5.011 12.542
2 5 2 0 1 4.2 5.011 12.542
...
1200 66 8 1 0 555 120 1700
Итак, как вы можете видеть, номер сценария разделяет значения на группы, и существует большое количество сценариев, вплоть до 1000 +. Вот что я использовал для добавления случайных чисел из нормально распределенной функции к значениям одного столбца одного сценария:
matrixfromexcel[Scenario == 1, val1 := val1+rnorm(8, 1.22, 1)]
Где 8 - это число различных случайных чисел, 1,22 - это значение, в котором я хочу отцентрировать среднее значение, а 1 - это число стандартных отклонений, которые я хочу получить в случайных числах.
Так что, если я хотел бы перейти от сценария 1 к 1000, я должен попробовать применить функцию или просто использовать цикл? Если применить функцию, не могли бы вы показать мне свое предложение? Спасибо