Я хотел бы пройтись по векторам значений и вычислить что-то для каждого значения, находясь в функциональной среде в R. Например:
# I have costs for 3 companies
c <- c(10, 20, 30)
# I have the same revenue across all 3
r <- 100
# I want to obtain the profits for all 3 within one variable
result <- list()
# I could do this in a for loop
for(i in 1:3){
result[i] <- r - c[i]
}
Теперь давайте предположим, что у меня есть очень длинная модель, и я определяю все как функцию, которая должна решаться с различными случайными ничьями для затрат.
# Random draws
n <- 1000
r <- rnorm(n, mean = 100, sd = 10)
c1 <- rnorm(n, mean = 10, sd = 1)
c2 <- rnorm(n, mean = 20, sd = 2)
c3 <- rnorm(n, mean = 30, sd = 3)
X <- data.frame(r, c1, c2, c3)
fun <- function(x){
r <- x[1]
c <- c(x[2], x[3], x[4])
for(i in 1:3){
result[i] <- r - c[i]
}
return(result)
}
Затем я мог бы оценить результат для всех розыгрышей, просматривая ряды случайно выбранных входных данных.
for(j in 1:n){
x <- X[j,]
y <- fun(x)
}
В этом примере выходная переменная y будет включать вложенную переменную результата, которая включает результаты для всех 3 компаний. Однако мое мышление приводит к ошибке, и я думаю, что это связано с тем, что я пытаюсь вернуть вложенную переменную? Отсюда мой вопрос, как вы, ребята, подходите к чему-то подобному.