问题
I need to filter by conditions when Plan_Year
is 1 less than
YEAR
and all rows of NA
in CAT column.
I have the following code:
Table <- Table %>% filter(YEAR == Plan_Year+1)
How can I include/modify the code above to obtain all rows with NA in CAT column?
Thanks in advance.
Table:
YEAR CAT Plan_Year
1998 NA NA
1998 125-1 1997
1998 171-2 1997
1998 NA NA
.
.
2017 114-1 202
回答1:
using |
and is.na
Table %>% filter(YEAR == Plan_Year+1|is.na(CAT))
YEAR CAT Plan_Year
1 1998 <NA> NA
2 1998 125-1 1997
3 1998 171-2 1997
4 1998 <NA> NA
Or using base R
dt[which(dt$YEAR == (dt$Plan_Year + 1)|is.na(dt$CAT)),]
YEAR CAT Plan_Year
1 1998 <NA> NA
2 1998 125-1 1997
3 1998 171-2 1997
4 1998 <NA> NA
回答2:
Use |
(or) to combine the two conditions:
Table %>% filter(YEAR == Plan_Year + 1 | is.na(CAT))
来源:https://stackoverflow.com/questions/46964091/filter-by-conditions-for-multiple-columns-in-r