Я возился с функциями обучения, чтобы рассчитать домашние задания (в данном случае настоящую стоимость денег), и я столкнулся с проблемой.Сохранение последовательных значений от функции до вектора?
Вот код:
pv <- function(x,y,z) {
list2 <- 0
ans <- 0
for(t in z){
fv <- x
d <- y
rate <- (1+d)^t
ans[t] <- fv/rate
}
return(ans)
}
Для расчета текущей стоимости я хочу, чтобы применить функцию к одному значению для диапазона лет (г = 1: 10, например) и имеет значение для каждого года хранящегося в векторе. У меня есть работы, но эта стратегия ломается в других приложениях. Например, когда я хочу ввести вектор значений (у меня есть другая функция, где я запускаю вектор через функцию) в течение ряда лет у меня возникают проблемы с возвратом полезного вектора.
делает то, что у вас есть работа для одного входного значения 'x'? Вы можете использовать 'sapply' для использования функции с вектором значений:' sapply (vectorOfValues, pv) ' –
Хорошо, это имеет смысл. Когда я использую sapply и сохраняю значения в вектор, они будут в порядке? Я запутался в использовании sapply. – milk
Да, они будут. 'sapply' используется для вставки каждого элемента вектора в функцию и возврата результата. «S» означает упрощение. Однако, 'sapply' здесь неверен, так как ваша функция имеет 3 параметра. Вам нужно использовать 'mapply', который предназначен для функций с несколькими параметрами. Попробуйте, mapply (pv, c (1000, 1200, 1500, 5600), c (.05, .02, .03, .09), 5) 'Похоже, что нижняя строка матрицы представляет собой расчет текущей стоимости (не знаю, почему это так). –