我有一个wide
个df
,columns
代表许多给定years
中的months
个,每个month
中的 colored颜色 变化:
df <- data.frame(id = as.integer(c(123,124,125,126)),
no_change = as.character(c("May.2010", NA, NA, "Sep.2010")),
`Jan.2010` = as.character(c("green", "black", "pink", "grey")),
`Feb.2010` = as.character(c("green", "black", "pink", "grey")),
`Mar.2010` = as.character(c("green", "red", "pink", "grey")),
`Apr.2010` = as.character(c("green", "red", "pink", "grey")),
`May.2010` = as.character(c("green", "red", "pink", "grey")),
`Jun.2010` = as.character(c("green", "red", "pink", "grey")),
`Jul.2010` = as.character(c("green", "white", "pink", "grey")),
`Ago.2010` = as.character(c("red", "white", "pink", "grey")),
`Sep.2010` = as.character(c("red", "white", "pink", "grey")),
`Oct.2010` = as.character(c("red", "white", "pink", "grey")),
`Nov.2010` = as.character(c("red", "white", "pink", "grey")),
`Dez.2010` = as.character(c("red", "white", "grey", "blue"))
)
df
id no_change Jan.2010 Feb.2010 Mar.2010 Apr.2010 May.2010 Jun.2010 Jul.2010 Ago.2010 Sep.2010 Oct.2010 Nov.2010 Dez.2010
1 123 May.2010 green green green green green green green red red red red red
2 124 <NA> black black red red red red white white white white white white
3 125 <NA> pink pink pink pink pink pink pink pink pink pink pink grey
4 126 Sep.2010 grey grey grey grey grey grey grey grey grey grey grey blue
我希望将NA
应用于包含等于或高于column
‘no_change’中指定的month
的每个column
.这就是理想的output
:
id no_change Jan.2010 Feb.2010 Mar.2010 Apr.2010 May.2010 Jun.2010 Jul.2010 Ago.2010 Sep.2010 Oct.2010 Nov.2010 Dez.2010
1 123 May.2010 green green green green NA NA NA NA NA NA NA NA
2 124 <NA> black black red red red red white white white white white white
3 125 <NA> pink pink pink pink pink pink pink pink pink pink pink grey
4 126 Sep.2010 grey grey grey grey grey grey grey grey NA NA NA NA