rb_date 열과 값 열이있는 테이블에서 가격 수준 (레벨)을 계산하려고합니다. 시작 기준 수준이 100이라고 가정하고 각 기간의 가격 수준 (동일한 rb_date 행을 의미 함)은 단순히 기본 수준을 반환하고 각 기간의 기본 수준은 이전 기간의 가격 수준의 마지막 값입니다. 나는 그것을 data.table을 사용하여 실현할 수있다. 어떻게 내가 dplyr에서 그것을 할 수 있을까?dplyr의 이전 값 참조
다음은 data.table에서 어떻게 수행했는지 재현 가능한 예입니다.
library(data.table)
library(dplyr)
table <- tibble(rb_date = rep(c("2017-01-01", "2017-02-01", "2017-03-01"), 3),
return = rnorm(9)) %>% arrange(rb_date)
rb_dates = sort(unique(table$rb_date))
table = as.data.table(table)
level_lag = 100
for (i in 1:length(rb_dates)) {
table[rb_date == rb_dates[i], level := level_lag * (1 + return)]
level_lag = table[rb_date == rb_date[i], last(level)]
}
가 '? dplyr :: lag' 유용 :: slice()를 사용 dplyr? – spinodal
나는 그것을하는 더 좋은 방법을 모른다. 이전 기간으로 되돌아 가므로 지연이 도움이되지 않을 수 있습니다. 임이 틀렸다는 것을 지적하십시오. –