2010-06-21 32 views
24

Tôi muốn một hàm trả về sản phẩm của tất cả các giá trị trong một vectơ, như sum nhưng với phép nhân thay vì bổ sung. Tôi mong đợi điều này đã tồn tại, nhưng nếu tôi không thể tìm thấy nó. Đây là giải pháp của tôi:nhân tất cả các phần tử của một vector trong R

product <- function(vec){ 
    out <- 1 
    for(i in 1:length(vec)){ 
     out <- out*vec[i] 
    } 
    out 
} 

Điều này hoạt động theo cách tôi muốn. Ví dụ:

> product(1:3) 
[1] 6 

Có cách nào tốt hơn để thực hiện việc này, với chức năng hiện tại hoặc thông qua cải tiến cho tùy chỉnh này?

+5

RCS trả lời này đầu tiên, vì vậy tôi đã xóa bài viết của tôi. Rất khuyên bạn nên in ra thẻ tham chiếu R. Bạn có thể tìm thấy nó ở đây: http://cran.r-project.org/doc/contrib/Short-refcard.pdf – mcpeterson

Trả lời

50

Bạn muốn prod:

R> prod(1:3) 
[1] 6 
+2

Ở đó chúng tôi đi, tôi biết nó phải đơn giản. – Fojtasek

Các vấn đề liên quan