我有一个类似矩阵的数据框,附加一列表示时间.它包含有关特定学校注册学生人数的信息,从5年级(专栏A)到9年级(专栏E).
time A B C D E
1 13 1842 1844 1689 1776 1716
2 14 1898 1785 1807 1617 1679
3 15 2065 1865 1748 1731 1590
4 16 2215 1994 1811 1708 1703
5 17 2174 2122 1903 1765 1699
Run Code Online (Sandbox Code Playgroud)
我需要跟踪的队列随时间的大小,这意味着我需要多少个五年级学生按行信息,从各个年度开始到9例如保持在从6年级的学校,对于已经开始五年级队列在2013年,我想了解2014年有多少人留在六年级,等等.
预期产出
这就是我想要的结果:
start.time point.A point.B point.C point.D point.E
1 13 1842 1785 1748 1708 1699
2 14 1898 1865 1811 1765 NA
3 15 2065 1811 1765 NA NA
4 16 2215 1765 …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数据框:
df <- data.frame(project = c("A", "B"),
no_dwellings = c(150, 180),
first_occupancy = c(2020, 2019))
project no_dwellings first_occupancy
1 A 150 2020
2 B 180 2019
Run Code Online (Sandbox Code Playgroud)
project是一个标识住宅建筑区域的专栏,no_dwellings表示这些区域最终建造的住宅数量,并且first_occupancy是对第一批居民何时开始搬入新建公寓的估计.
我需要将这些信息纳入人口预测.我们最好的估计是每年(从开始first occupancy),60个住房被搬入.因此,我需要按顺序生成列,这些列结合了来自first_occupancy和的信息,no_dwellings以指示每年可能搬入多少住宅.由于建造的住宅数量不一定除以60,因此剩余部分需要放入相应项目的最后一栏.
这就是我期望我的数据框看起来像进一步处理:
project no_dwellings first_occupancy year_2019 year_2020 year_2021 year_2022
1 A 150 2020 0 60 60 30
2 B 180 2019 60 60 60 0
Run Code Online (Sandbox Code Playgroud)