如何将NA分配给“否”

问题描述

在我的数据集中,我有一栏需要将空格替换为“否”,我该怎么做?

该列是一个字符变量,只有两个值,是和否。

data<- as.data.frame(Upper_GI_2ww)
data$`Direct to Test?` = ifelse(nchar(data$`Direct to Test?`) == "NA","No",data$`Direct to Test? )

输出

head(data$`Direct to Test?`)
[1] "Yes" "Yes" "Yes" NA    "Yes" "Yes"

灵魂:

现在工作正常,这是我所做的:

首先,我将char转换为factor。

我使用了一个简单的is.na函数

data$`Direct to Test?`[is.na(data$`Direct to Test?`)] <-"No"
head(data$`Direct to Test?`)
Yes Yes Yes No  Yes Yes
Levels: No Yes

现在工作正常。

解决方法

您可以使用nchar来计算字符数。

df$var = ifelse(nchar(df$var) == 0,"No",df$var)

如果您只需要替换“”,这也是有效的:

df$var = ifelse(df$var == "",df$var)
,

这是使用sub()函数替换空字符串的一种方法

#create data
data <- c("","yes","","no")

#make into data.frame
data <- as.data.frame(data)

#replacing empty strings with "No"
sub("^$",data$data)