我对 if_else 语句很陌生,我想知道是否有人可以帮助我理解我同事的一些代码的含义(他们不再在我所在的地方工作)。我使用 if_else 语句来识别/标记来自一组记录器部署的温度数据(即,我不希望在检索数据后或在检索和下一次部署之间记录数据等)。有些已部署和检索一次(在我的示例中为 B),有些已部署两次(在我的示例中为 A 和 C)。
以下是对数据集 (df) 的总体了解:
| 温度 | 日期时间日志 | 部署_1 | 部署_2 | 检索_1 | 检索_2 | 记录器 |
|---|---|---|---|---|---|---|
| 3.7 | 约会时间 | 约会时间 | 约会时间 | 约会时间 | 约会时间 | A |
| 3.6 | 约会时间 | 约会时间 | 约会时间 | 约会时间 | 约会时间 | A |
| 3.4 | 约会时间 | 约会时间 | 约会时间 | 约会时间 | 约会时间 | A |
| 3.1 | 约会时间 | 约会时间 | 约会时间 | 乙 | ||
| 1.5 | 约会时间 | 约会时间 | 约会时间 | 乙 | ||
| 1.5 | 约会时间 | 约会时间 | 约会时间 | 约会时间 | 约会时间 | C |
我正在研究另一位同事的一些旧代码,并且想知道这两个语句“说”了什么,或者它们的含义是什么。
df$flag1 <- if_else(is.na(df$deploy_2),0,if_else(df$Datetime_log>retrieve_1 & df$Datetime_log<deploy_2,1,0))
我假设上面的意思是:如果deploy_2是NA,则将其分配为0,但如果不是,并且Datetime_log>retrieve_1&<deploy_2,则将其分配为1。
df$flag2 <- if_else(is.na(df$deploy_2), if_else(df$Datetime_log>df$retrieve_1, 1,0),0)
我假设上面的意思是:如果deploy_2是NA,则将其分配为0,但如果不是,并且Datetime_log>retrieve_1,则将其分配为1?
我对“0”的位置也很困惑。与第一个语句中一样,0 被放置在第一个 if_else 之后,而在第二个语句中,0 被放置在整个语句的末尾。
请,如果有人可以纠正我或帮助我,我将非常感激!只是寻找有人非常清楚地阐明如何阅读这些陈述。这将帮助我制作额外的过滤器。提前非常感谢!