替换R中的值,"是"到1和"不"到0

时间:2017-05-15 18:07:20

标签: r dataset

我正在处理R库中可用的weatherAUS数据集。我想替换"是"到1和"不"在RainTomorrow专栏中为0。

我写了这个,但它似乎没有用:

weather4$RainTomorrow[weather4$RainTomorrow=="Yes"]<-1 

我只是说:

  

警告讯息:在[<-.factor*tmp*,weather4 $ RainTomorrow ==   &#34;是&#34;,值= c(NA,:无效因子水平,NA生成

这是什么意思,我该怎么办?我想我应该在某个地方使用as.numeric或as.factor,但我不知道究竟是怎么回事。

3 个答案:

答案 0 :(得分:4)

您可以使用dplyr轻松完成此操作。

require(dplyr)
weather4 <- weather4 %>%
      mutate(RainToday = ifelse(RainToday == "No",0,1))

希望这有帮助

答案 1 :(得分:2)

library(data.table)   
weather4[,":="(RainTomorrow=ifelse(RainTomorrow=="no",0,1))]

或只是使用:

as.numeric(as.factor(weather4$RainTomorrow))

答案 2 :(得分:0)

当测试不同的模型时,这是相当常见的事情。例如,决策树适用于&#34;是&#34;和&#34;不&#34;。然而,一些回归模型需要1和0.特殊的Logistic回归。

我通过使用plyr库解决了这个问题。这非常简单方便。这是我的解决方案。

解决方案的来源是here.

library(plyr)
weather5$RainToday <- revalue(weather5$RainToday, c("Yes"=1))
weather5$RainToday <- revalue(weather5$RainToday, c("No"=0))
head(weather5$RainToday)
[1] 0 1 1 1 1 0
Levels: 0 1

和平!