2017-10-16 99 views
0

我有這個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

回答

0
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

0
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