【发布时间】:2021-11-11 17:02:53
【问题描述】:
我有一个宽数据集,每人 1 行。每个人都有一组 12 个变量,代表一年中每个月的访问。如果一个人一个月没有访问,它目前显示为 NA。如果一个人在一个月内多次访问,则数字是访问次数。例如,一名患者在 2 月份首次就诊,他们进行了 2 次就诊。一月列是 NA,因为他们当时没有被看到,二月列是 2,因为他们在那个月有 2 次访问。该人的其余月份是否有访问将相应填写。
我的目标是找到第一个非缺失值,然后在他们第一次访问后没有访问的任何月份都需要更改为 0。我仍然希望将他们第一次访问前的几个月保持为 NA。我提供了“拥有”和“想要”数据集。
我已经尝试过循环、if 语句和函数,但没有任何成功。有人对这种类型的代码有经验吗?
有:
|ID | Jan | Feb | Mar | Apr | May | June | Jul |
|:--|:---:|:---:|:---:|:---:|:---:|:----:|:---:|
| 1 | NA | 1 | 1 | 2 | NA | NA | NA |
| 2 | NA | NA | NA | 1 | NA | NA | NA |
| 3 | 1 | NA | 1 | 3 | 1 | NA | NA |
| 4 | NA | NA | NA | NA | NA | 1 | 1 |
想要:
|ID | Jan | Feb | Mar | Apr | May | June | Jul |
|:--|:---:|:---:|:---:|:---:|:---:|:----:|:---:|
| 1 | NA | 1 | 1 | 2 | 0 | 0 | 0 |
| 2 | NA | NA | NA | 1 | 0 | 0 | 0 |
| 3 | 1 | 0 | 1 | 3 | 1 | 0 | 0 |
| 4 | NA | NA | NA | NA | NA | 1 | 1 |
【问题讨论】:
标签: r