Я хочу использовать этот цикл для определения прибыли, получаемой в результате каждой из "ставок", которые я разместил в своем векторе MillerBids
.На выходе должен быть вектор с 10 элементами.Проблема в том, что этот код возвращает только повторяющиеся значения NA.
Я предполагаю, что ошибка либо где-то в моем индексировании, либо сбрасывает мои переменные и векторы.Это две вещи, которые мне трудно понять при работе с более сложными циклами.
library(triangle)
MillerBids = c(10500,11000,11500,12000,12500,13000,13500,14000,14500,15000)
CostToBid = 350
ProjCost = 10000
Comps = 4
MillerProfs = c()
for (MillerBid in MillerBids) {
CompBids = c()
MillerProf = 0
for (Comp in 1:Comps)
CompBids[Comp] = MillerBid * rtriangle(1, a=0.9, b=1.8, c=1.3)
MinComp = min(CompBids)
if (MillerBid < MinComp) {
MillerProf = MillerBid - (CostToBid + ProjCost)
} else {
MillerProf = 0 - CostToBid
}
MillerProfs[MillerBid] = MillerProf
}
MillerProfs
возвращает: [1] NA NA NA NA NA NA NA NA
... несколько тысяч раз
Я знаю о преимуществах использования семейства функций apply()
, но для этого конкретного случая мне нужноиспользовать это для цикла, и мне также нужно улучшить мое понимание их.
Как я уже сказал, цель состоит в том, чтобы MillerProfs
был вектором с 10 элементами, каждый из которых представляет собой число прибыли, относящееся к значениям в MillerBids
.