r - 用于识别 R 中状态变化的 lag() 显示出意想不到的结果
问题描述
我正在尝试应用如下滞后功能:
merged_stchg <- merged_tot %>% group_by(LanID) %>% #group observations by their id
mutate(state = ifelse(NACH.P.F == 1 & lag(NACH.P.F) == 0, 1,0))
这里 merge_tot(dataframe) 具有以下结构:
Month LanID NACH.P.F state
12 a1 1 0
12 a2 1 1
12 a3 1 0
11 a1 1 1
11 a2 0 0
11 a3 1 1
11 a4 1 0
10 a1 0 0
10 a2 1 0
10 a3 0 0
期望是当 NACH.PF 从 0 变为 1 时,状态必须更改为 1,否则它必须为 0。即使在任何记录之前没有记录,也必须将其视为 0(因为没有状态从 0 更改到 1 观察)。
我应用了上面的代码,0 是可以的(除了当之前没有记录时它给出 NA(而不是 0)但这里不是主要关注点。
问题出在 1 的地方,我可以看到 1 的记录(要么他们没有任何先前的条目,要么几个月之间有间隔(比如 8 月之后的第 12 个月以下),所以它不能正常工作。
Month LanID NACH.P.F state
12 1630516604815637 1 **1**
8 1630516604815637 1 **1**
我怀疑没有条目(NA)被函数视为 0(但是 NA 和 0 分配工作正常)。请建议,可能是什么潜在问题。
解决方案
推荐阅读
- sql - SQL 十进制格式在所有情况下都不能正常工作
- apache-kafka - 聚合到具有无限保留的压缩主题
- c - 将数据从文件读取到C中的结构
- python - 文本中字符串的多次替换,不匹配子字符串
- reactjs - 故事书错误意外的默认导出没有标题:{"includeStories":[],"parameters":{"docs":{}}}
- c# - 如何根据最终结果创建计算?
- mysql - SQL 之间的子句太慢
- javascript - 从 HTML 中的 JavaScript 模块调用函数
- reactjs - 如何使用 Reactjs 列出目录中的所有文件?
- javascript - 如何访问 Promise 的值?