【发布时间】:2021-11-28 11:37:55
【问题描述】:
我正在使用 ACS 数据尝试从两个不同的变量 OCPIP 和 GRPIP 创建一个住房成本负担变量。
我想将那些报告 0 为缺失,任何大于 30 的值设置为“Yes”,任何值 1-30 为“No”。这是我的dplyr/Tidyverse 代码:
df <- df %>%
mutate(cost_burdened = if_else(OCPIP == 0 | GRPIP == 0, NA_character_,
if_else(OCPIP < 31 | GRPIP < 31, "No", "Yes")))
我觉得我已经按照我阅读它的方式设置了它,如果 X 或 Y = 0,那么它们就丢失了,如果 X 或 Y 大于 31,那么它们是“是”。如果我使用为其中一个设置的确切 if_else 创建了两个单独的变量(因此只有 GRPIP 或 OCPIP),则代码有效。
但是当我添加 | 时它不起作用。它将所有内容都设置为缺失。当我尝试了包括case_when 在内的不同配置时,它仍然无法正常工作。
【问题讨论】:
-
如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example。
标签: r if-statement variables dplyr logical-operators