Я пытаюсь создать итеративную функцию в R, используя цикл или массив, который создаст три переменные и три фрейма данных с одинаковым суффиксом 1-3. Мой текущий код:
function1 <- function(b1,lvl1,lvl2,lvl3,b2,x) {
lo1 <- exp(b1*lvl1 + b2*x)
lo2 <- exp(b1*lvl2 + b2*x)
lo3 <- exp(b1*lvl3 + b2*x)
out1 <- t(c(lv1,lo1))
out2 <- t(c(lvl2,lo2))
out3 <- t(c(lvl3,lo3))
out <- rbind(out1, out2, out3)
colnames(out) <- c("level","risk")
return(out)
}
function1(.18, 1, 2, 3, .007, 24)
Однако я хотел бы повторить одну и ту же строку кода три раза, чтобы создать lo1, lo2, lo3 и out1, out2 и out3. Синтаксис ниже совершенно неправильный, потому что я не знаю, как использовать два аргумента в цикле for или вкладывать цикл for в функцию, но это грубая идея:
function1 <- function(b1,b2,x) {
for (i in 1:3) {
loi <- exp(b1*i + b2*x)
return(lo[i])
outi <- t(c(i, loi)
return(out[i])
}
out <- rbind(out1, out2, out3)
colnames(out) <- c("level","risk")
return(out)
}
function1(.18,.007,24)
Вывод должен выглядеть так:
level risk
1 1.42
2 1.70
3 2.03