Я никогда не использовал R для вычисления числа путем итерации.Я искал решение с синтаксисом «цикл до» и не смог.Возможно, это можно сделать с помощью чего-то похожего на «fsolve» в Matlab.
У меня есть следующее (упрощенное) data.table
:
head(db)
client_id Price Quantity Ai_SR
1: 0100003801 2.802 160 197.2983
2: 0100003802 2.802 142 178.1377
3: 0100003803 2.802 240 196.0487
4: 0100003804 2.802 75 175.2219
5: 0100003805 2.802 145 208.5448
6: 0100010401 2.802 159 362.6629
Начиная с P_bar = 1
, я хочуповторите следующую команду:
sum(db[, (Ai_SR * P_bar^(-0.15)) * P_bar])
До sum(db[, (Ai_SR * P_bar^(-0.15)) * P_bar]) = 8493853224
.
Как написать команду, которая делает это, увеличивая P_bar
на 0,01 в каждой итерации?
Более того, я уверен, что сумма никогда не будет точно сходиться к 8493853224
.Поэтому я думаю, что мне придется зацикливать команду до тех пор, пока сумма не станет строго больше, чем 8493853224
, и просто сохранить последние P_bar
до того, как сумма будет больше, чем 8493853224
.
Я полагаю, что смогускопируйте и вставьте команду и замените P_bar
на 1, 1.01, 1.02, ..., пока сумма не приблизится к 8493853224
.Есть ли любитель способ сделать это?
Я прошу прощения, если этот вопрос был задан ранее.В свою защиту, я не мог найти ничего похожего, ища решения типа петли.
Заранее спасибо!