首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理R中逻辑类型列中缺少的值

如何处理R中逻辑类型列中缺少的值
EN

Stack Overflow用户
提问于 2019-05-14 05:44:43
回答 1查看 447关注 0票数 0

我有一个逻辑类型列Self_Employed,值为TRUE和FALSE,它缺少表示“雇员”而不是自营职业者的值。我想把“失踪”一词归到专栏中。

代码语言:javascript
复制
class(df$Self_Employed)
[1] "logical"

levels(df$Self_Employed)
NULL

sum(is.na(df$Self_Employed))
[1] 210

table(df$Self_Employed)
 FALSE   TRUE 
  1561    271

获取类为“逻辑”,级别为NULL,缺失和为210,表显示为true和false的总数。

先把缺失归责为因由,然后才算漏,但不补,只表示NA,等级只说真假。

代码语言:javascript
复制
df$Self_Employed <- as.factor(df$Self_Employed)
levels(df$Self_Employed)[levels(df$Self_Employed)=="" ] <- "SE_Missing"

levels(df$Self_Employed)
[1] "FALSE" "TRUE" 

只显示真假的级别和is.na显示相同的210

代码语言:javascript
复制
df$Self_Employed <- factor(df$Self_Employed,levels=c('FALSE','TRUE',''),labels=c('Yes','No','SE_Missing'))

如何填充缺失因子

我需要将True转换为"Yes",False转换为"No",NA转换为"SE_Missing“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-14 05:53:02

我不认为你需要把列变成因子。下面是一个使用虚拟数据集的示例

代码语言:javascript
复制
library(dplyr)
df %>%
  mutate(b = case_when(b ~ "Yes", 
                       !b ~ "No", 
                       TRUE ~ "SE_Missing"))

#  a          b
#1 1        Yes
#2 2        Yes
#3 3         No
#4 4 SE_Missing
#5 5         No
#6 6 SE_Missing

或者使用嵌套的ifelse,它也可以集成在mutate中。

代码语言:javascript
复制
with(df, ifelse(is.na(b), "SE_Missing", ifelse(b, "Yes", "No")))
#[1] "Yes"    "Yes"    "No"    "SE_Missing" "No"    "SE_Missing"

数据

代码语言:javascript
复制
df <- data.frame(a = 1:6, b = c(TRUE, TRUE, FALSE, NA, FALSE, NA))

#  a     b
#1 1  TRUE
#2 2  TRUE
#3 3 FALSE
#4 4    NA
#5 5 FALSE
#6 6    NA
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56123708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档