벡터 (예 : cumsum
)에 대해 누적 합계를 수행 할 수 있지만 합계가 하한값 이하 또는 상한값 이상으로 떨어지지 않도록하려면 어떻게해야합니까?경계 누적 합계?
표준 cumsum 함수는 다음과 같습니다.
foo <- c(100, -200, 400, 200)
cumsum(foo)
# [1] 100 -100 300 500
저는 cumsum
이라는 기본 기능을 찾고 있습니다. 결과물은 다음과 같을 것입니다.
cumsum.bounded(foo, lower.bound = 0, upper.bound = 500)
# [1] 100 0 400 500
감사 의견에서 언급 한 바와 같이
기본 'cumsum'함수만큼 효율적인 함수를 찾으려면 'C'로 구현해야합니다. –
필요에 따라 Rcpp의 설탕 기능 [cumsum] (http://dirk.eddelbuettel.com/code/rcpp/html/cumsum_8h_source.html)을 조정하는 것이 상대적으로 쉽습니다. 내가 아는 한 if 문 하나만 추가하면됩니다. – Roland
@SvenHohenstein 또는 "Rcpp"솔루션 일 가능성이 큽니다. –