我试图从最近的一年开始计算数据集中每年出现的个体数量。我的数据集看起来像这样:
| 身份证|坡度|学年|
| --------------|--------------|--------------|
| 1|九|“十七十八”|
| 1|10个|“十八十九”|
| 1|十一|“十九二十”|
| 1|十二岁|“二十二十一”|
| 二|九|“十七十八”|
| 二|10个|“十八十九”|
| 二|十一|“二十二十一”|
| 三|十一|“二十二十一”|
| 三|十二岁|“二十一二十二”|
| 四|九|“十七十八”|
| 四|10个|“十八十九”|
| 四|十一|“十九二十”|
| 四|十二岁|“二十二十一”|
我想知道20-21年的学生ID的数量,这些ID也出现在19-20年,并持续出现在18-19年,然后在17-18年再次出现。我想计算20-21年中的ID数量,这些ID在之前的每一年都存在。
我需要一个这样的表:
| 20-21中的ID数量|19-20中存在的20-21中的ID数量|18-19中存在的20-21的ID数量|17-18中存在的20-21的ID数量|
| --------------|--------------|--------------|--------------|
| 二百|一百八十|一百五十|一百四十|
我甚至不知道如何开始计算这个。
1条答案
按热度按时间kg7wmglp1#
您可以使用
filter()
语句来完成此操作。在下面的代码中,过滤器正在查找四个学年指定中的每一个都存在于特定id
中的组。例如,"17-18 %in% school_year
,它在school_year
的值中为每个特定id
查找"17-18"
。下面是过滤后的数据,只包括满足条件的
id
。如果你只想要唯一的单个
id
值,你可以这样做:编辑:更新问题的答案
如果一个观察必须在19-20中才能在18-19中计数,那么你可以弄清楚id是否在每一年中,将数据旋转更长的时间,然后在年内值上取累积乘积。
如果一个观测值不一定要在19-20中才能在18-19中计数,那么你可以过滤20-21中的观测值,然后只计算每年的观测值:
创建于2023年3月20日,使用reprex v2.0.2