r - 如何使用另一个变量的条件重新编码变量中的类别
问题描述
我有两个变量 - 婚姻状况(单身、已婚、离婚)和年龄(连续)。婚姻状况有很多NA
我想在“婚姻状况”变量中将那些缺少婚姻状况 (NA) 且年龄 <15 岁的人重新编码为单身。
我已经尝试过使用 dplyr 但没有成功
leanersharp %>% mutate(Marital.Status = case_when(Marital.Status== NA & Age <15 ~ 'Single'))
解决方案
您可以直接分配 -
df$Martial_Status[df$Age < 15 & is.na(df$Martial_Status)] <- 'Single'
# Age Martial_Status
#1 10 Single
#2 23 Single
#3 34 Married
#4 45 Divorced
如果你想使用dplyr
和case_when
-
df <- df %>%
mutate(Martial_Status = case_when(Age < 15 & is.na(Martial_Status) ~ 'Single',
TRUE ~ Martial_Status))
数据
如果您以可重现的格式提供数据,则更容易提供帮助。
df <- data.frame(Age = c(10, 23, 34, 45),
Martial_Status = c(NA, 'Single', 'Married', 'Divorced'))
df
# Age Martial_Status
#1 10 <NA>
#2 23 Single
#3 34 Married
#4 45 Divorced
推荐阅读
- javascript - 加载微调器 VueJS
- codenameone - 从codenameone android扫描PDF417
- android - 更改许多控件的默认颜色
- spring-cloud - 如何在 QueueMessageHandler 中为 spring-cloud-aws 获得 javax.validation 有效负载验证?
- laravel - Laravel 编码实践 / 最优化的存储方法
- java - ksoap2 复杂参数 - SoapFault - 故障代码:'soap:Client' 故障字符串:
- node.js - 如何在 NodeJs 中打印字符串消息?
- r - 将线性模型应用于嵌套数据
- google-chrome - Puppeteer 页眉和页脚未显示在第一页
- android - Alarm Manager is sometimes very long to run the intent