Ví dụ: Tôi hiện đang làm việc với chức năng cho phép bạn xem bạn có thể có bao nhiêu tiền nếu bạn đầu tư vào thị trường chứng khoán. Hiện tại tôi đang sử dụng cấu trúc vòng lặp, điều này thực sự gây khó chịu cho tôi, bởi vì tôi biết có cách tốt hơn để mã hóa và tận dụng vectơ trong R. Tôi cũng tạo các vectơ giả trước khi chạy hàm, điều này có vẻ hơi lạ.Có cách nào để đơn giản hóa các chức năng trong R sử dụng vòng lặp không?
Vẫn là người mới bắt đầu tại R (chỉ mới bắt đầu!), Vì vậy mọi hướng dẫn hữu ích đều được đánh giá cao!
set.seed(123)
##Initial Assumptions
initialinvestment <- 50000 # e.g., your starting investment is $50,000
monthlycontribution <- 3000 # e.g., every month you invest $3000
months <- 200 # e.g., how much you get after 200 months
##Vectors
grossreturns <- 1 + rnorm(200, .05, .15) # approximation of gross stock market returns
contribution <- rep(monthlycontribution, months)
wealth <- rep(initialinvestment, months + 1)
##Function
projectedwealth <- function(wealth, grossreturns, contribution) {
for(i in 2:length(wealth))
wealth[i] <- wealth[i-1] * grossreturns[i-1] + contribution[i-1]
wealth
}
##Plot
plot(projectedwealth(wealth, grossreturns, contribution))
Lợi thế của việc thực hiện theo cách này là gì? – Ruben
Không, thực tế. Nó là thành ngữ hơn cho những người nghĩ về chức năng. Nhưng 'Reduce' với tích lũy chỉ đơn giản là một vòng lặp' for' được thực hiện tốt. Không có gì sai khi sử dụng vòng lặp 'for' trong câu hỏi, như đã nói. –