条件更换

问题描述:

我有这个data.frame气象数据: Weather data条件更换

我想从雨的描述转换为湿润归类为雨,但有0我的降雨量级天也想将那些雨天分类为大于20的降雨量,如同大雨。我该怎么做?我用dplyr尝试过,但到目前为止还没有成功。

这是数据:

rainfall description 
1  0 Rain 
2  12 Cloudy 
3  19 Dry 
4  22 Rain 
5  23 Dry 
6  0 Rain 
7  13 Rain 

这是预期的结果:

rainfall description 
1  0 Wet 
2  12 Cloudy 
3  19 Dry 
4  22 Heavy Rain 
5  23 Dry 
6  0 Wet 
7  13 Rain 

我尝试了这些代码,但他们没有工作。该数据集的名称是new.wDat

new.wDat$description[(new.wDat$rainfall==0 && new.wDat$description=='Rain')] <- 'Wet' 

new.wDat[new.wDat$rainfall == 0 & new.wDat$description == "Rain", "description"] <- 'Wet' 

类的表是“data.frame”

能否请你帮忙吗? 非常感谢!

+1

您的问题不清楚。请提供一个可重复的示例(而不是图像)和基于示例的预期输出 – akrun

+0

嗨,我已经提供了基于该示例的可重现示例和预期输出。 感谢您的建议答案,但答案中只有一个条件,而我的问题需要代码根据两个条件执行,但不知何故,它不起作用。 – Willis

new.wDat %>% mutate(Description=ifelse(Rainfall==0 & Description=="Rain", "Wet", 
           ifelse(Rainfall >20 & Description=="Rain", "Heavy Rain", 
           as.character(Description)))) 

    Rainfall Description 
1  0   Wet 
2  12  Cloudy 
3  19   Dry 
4  22 Heavy Rain 
5  23   Dry 
6  0   Wet 
7  13  Rain 
+0

谢谢,它很好用:D – Willis

df <- data.frame(rainfall = c(6,0,4,21,0), 
      description= c("Rain","Rain","Rain","Rain","Fog")) 
>df 
rainfall description 
1  6  Rain 
2  0  Rain 
3  4  Rain 
4  21  Rain 
5  0   Fog 

df$description <- as.character(df$description) 
df[df$rainfall==0 & df$description == "Rain",2]<-c("Wet") 
df[df$rainfall>20 & df$description == "Rain",2]<-c("Heavy") 

>df 
    rainfall description 
1  6  Rain 
2  0   Wet 
3  4  Rain 
4  21  Heavy 
5  0   Fog