dplyrでlag()を使って、valueをずらすと空いた欄にNAが入るためそれを0に置き換える

require(tidyverse)

date <- seq(as.Date("2020-1-1"), as.Date("2020-12-01"), by = "month")
date
value <- seq(1:12)

test <- data.frame(date, value)
test

# たとえば、lag()を使って、valueをずらすと
# 空いた欄にNAが入ることを確認するためのコード
# 1つ下にずらす
test |> mutate(value1 = lag(value,n=1)) |> 
  mutate(value2 = lag(value, n=2)) -> test1
test1

# replace_na()を使わずにNAを0に置き換える方法:

# https://stackoverflow.com/questions/49947592/replace-na-with-zero-in-dplyr-without-using-list
test1 %>% replace(is.na(.), 0) -> test2
test2