Ваша функция работает нормально, если вы не забыли вернуть вывод.
q4 <- function(X, R, N) {
tot <- X*(1+R/100)^N
tot
}
X <- c(1, 3, 4, 6, 7, 9)
R <- c(3, 4, 6, 7, 9, 2)
N <- c(8, 7, 5, 4, 5, 1)
q4(X, R, N)
# 1.266770 3.947795 5.352902 7.864776 10.770368 9.180000
В R вы можете вернуть значение, используя return()
. Это удобно, если у вас есть условный оператор, и одно условие позволяет вам вернуть значение раньше, но в большинстве случаев достаточно просто вызвать возвращаемый объект.
Позвольте мне продемонстрировать.
q5 <- function(X, R, N) {
if (missing(N)) {
return(X*(1+R/100))
}
tot <- X*(1+R/100)^N
tot
}
q5(X, R)
# 1.03 3.12 4.24 6.42 7.63 9.18
Вещи после return()
не будут оцениваться, вещи после tot
будут.
q6 <- function(X, R, N) {
if (missing(N)) {
return(X*(1+R/100))
1 + 2
}
tot <- X*(1+R/100)^N
tot
1 + 2
}
q6(X, R)
# 1.03 3.12 4.24 6.42 7.63 9.18
q6(X, R, N)
# 3