r - 在 R 中使用 if_else 从两个不同的变量创建一个变量
问题描述
我正在使用 ACS 数据尝试从两个不同的变量 OCPIP 和 GRPIP 创建一个住房成本负担变量。
我想将那些报告 0 为缺失且任何大于 30 的值设置为“是”,将任何值 1-30 设置为“否”。这是我的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
它仍然无法正常工作。
解决方案
我不知道是什么导致了你的问题。请参见下面的示例。在这里一切都很好。
library(tidyverse)
set.seed(1111)
n=500
df = tibble(
OCPIP = sample(0:40, n, replace = TRUE),
GRPIP = sample(0:40, n, replace = TRUE),
) %>% mutate(cost_burdened = if_else(OCPIP == 0 | GRPIP == 0, NA_character_,
if_else(OCPIP < 31 | GRPIP < 31, "No", "Yes")))
输出
# A tibble: 500 x 3
OCPIP GRPIP cost_burdened
<int> <int> <chr>
1 25 27 No
2 35 3 No
3 5 18 No
4 37 32 Yes
5 25 39 No
6 30 11 No
7 38 27 No
8 0 1 NA
9 12 19 No
10 23 16 No
# ... with 490 more rows
推荐阅读
- flutter - 如何从 DropDownMenu 获取所选项目的值
- java - log4j2 使用 CsvParameterLayout,如何在单元格中添加时间戳?
- python - 如何使用 numpy empty_like
- javascript - TypeError:无法读取 null 的属性“文件”
- python - 寻找更好的选项来打印 python 字典中两个项目的关联值
- javascript - 从日期字符串 + 时间字符串 + 时区偏移字符串创建 JavaScript Date 对象
- ruby - 尝试模块化方式时,sinatra“命名空间”不起作用
- python - Python3.7目录名有空格时文件名或目录不正确
- flutter - NoSuchMethodError,小部件库捕获的异常
- php - 请建议简化此功能的方法