通过减少 R 中的行数来拆分数据框

Split data frame by decreasing number of rows in R

我有一个数据框:

dates <- seq.Date(from = as.Date("2005/01/01"), to = as.Date("2022/01/01"), by = 'years')
myvar <- rnorm(n = length(dates))
mydata <- cbind.data.frame(dates, myvar)

我想将此数据拆分为 18 个不同的数据框(由行数给出)。 第一个数据框将包含所有 18 行,第二个数据框将包含行 2:18,第三个将包含行 3:18,依此类推。最终数据框将仅包含第 18 行。

out <- lapply(rev(seq_len(nrow(mydata))), tail, x = mydata)
out[[1]]
#         dates        myvar
# 1  2005-01-01 -1.626973680
# 2  2006-01-01  0.540752205
# 3  2007-01-01 -1.513774595
# 4  2008-01-01  0.710279918
# 5  2009-01-01 -0.150721031
# 6  2010-01-01 -0.905366141
# 7  2011-01-01  0.494374069
# 8  2012-01-01 -0.489290540
# 9  2013-01-01 -0.784882029
# 10 2014-01-01 -1.046514324
# 11 2015-01-01 -0.086859898
# 12 2016-01-01 -0.001513102
# 13 2017-01-01  0.002866734
# 14 2018-01-01 -2.262867978
# 15 2019-01-01 -0.787750551
# 16 2020-01-01  0.557968261
# 17 2021-01-01  0.514520082
# 18 2022-01-01 -1.004364925
out[17:18]
# [[1]]
#         dates      myvar
# 17 2021-01-01  0.5145201
# 18 2022-01-01 -1.0043649
# [[2]]
#         dates     myvar
# 18 2022-01-01 -1.004365