条件更换
问题描述:
我有这个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”
能否请你帮忙吗? 非常感谢!
答
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
您的问题不清楚。请提供一个可重复的示例(而不是图像)和基于示例的预期输出 – akrun
嗨,我已经提供了基于该示例的可重现示例和预期输出。 感谢您的建议答案,但答案中只有一个条件,而我的问题需要代码根据两个条件执行,但不知何故,它不起作用。 – Willis