【发布时间】:2018-07-19 10:38:53
【问题描述】:
我有一个简单的问题:
我有一列包含数千个值,我正在尝试将其转换为二分变量(是|否)。用“否”替换字符串很容易,因为我要转换的值是一个星号
Data$Complete <- gsub("\\*", "No", Data$Complete)
但是当我尝试替换除“否”之外的所有内容时,以下代码将字符串中的所有内容替换为“是”。我不明白为什么它会像我指定的那样替换除“否”之外的所有内容:
Data$Complete <- Data[!Data$Complete %in% c("No"), "Complete"] <- "Yes"
任何指针将不胜感激。
【问题讨论】:
-
你可能应该做一个可重现的例子
-
尝试使用
ifelse并用一个命令替换它们:ifelse(grepl("\\*", foo), "No", "Yes") -
反正你有两个
<-。试试Data[!Data$Complete %in% c("No"), "Complete"] <- "Yes" -
如果你只需要比较一个值,
"No",你不需要%in%,你应该使用==。