Сначала я бы использовал sapply
вместо for
l oop следующим образом:
sapply(Capacity, function(cap){
sum(min(demand, cap) * UnitCost)
})
Это даст вам следующий вывод для demand
, указанного в вашем вопросе:
# 111000.0 129500.0 148000.0 166500.0 185000.0 203500.0 207475.4
РЕДАКТИРОВАТЬ: Чтобы применить это к многолетним требованиям, вы можете сделать следующее:
num.years <- 1:5
sums <- data.frame(t(sapply(num.years, function(i){
set.seed(i-1)
demand <- rnorm(n = 1, mean = 50000, sd = 12000)
sapply(Capacity, function(cap){
sum(min(demand, cap) * UnitCost)
})
})))
row.names(sums) <- paste0("Year_", num.years)
colnames(sums) <- Capacity
sums
Это даст вам следующий результат:
# 30000 35000 40000 45000 50000 55000 60000
# Year_1 111000 129500 148000.0 166500.0 185000.0 203500.0 222000.0
# Year_2 111000 129500 148000.0 166500.0 180392.6 180392.6 180392.6
# Year_3 111000 129500 148000.0 160263.8 160263.8 160263.8 160263.8
# Year_4 111000 129500 148000.0 166500.0 185000.0 203500.0 222000.0
# Year_5 111000 129500 145352.7 145352.7 145352.7 145352.7 145352.7
Надеюсь, это поможет.